Эта статья является кандидатом в добротные статьи

SNOW (шифр): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
оформление, викификация
добавлены ссылки
Строка 3: Строка 3:


== История ==
== История ==
SNOW 1.0, первоначально просто SNOW, был представлен проекту [[NESSIE]]. Шифр не имел известной интеллектуальной собственности или других ограничений в области авторских прав{{Нет АИ|11|11|2020}}. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации [[регистр сдвига с линейной обратной связью|регистра сдвига с линейной обратной связью]] (РСЛОС) и [[конечный автомат|конечного автомата]] (КА), где РСЛОС также передает функцию следующего состояния КА.
SNOW 1.0, первоначально просто SNOW, был представлен проекту [[NESSIE]]. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации [[регистр сдвига с линейной обратной связью|регистра сдвига с линейной обратной связью]] (РСЛОС) и [[конечный автомат|конечного автомата]] (КА), где РСЛОС также передает функцию следующего состояния КА.


В первой версии были обнаружены слабые места
В первой версии были обнаружены слабые места<ref> {{Cite web| url = https://link.springer.com/chapter/10.1007/3-540-36492-7_5| title = A New Version of the Stream Cipher SNOW}} </ref>, и в результате SNOW не был включен в набор алгоритмов NESSIE. Авторы разработали новую версию шифра SNOW 2.0, в которой устранили недостатки и улучшили производительность. Во время оценки ETSI SAGE алгоритм шифрования был дополнительно изменён, чтобы повысить его устойчивость к алгебраическим атакам. Результатом таких улучшений стала модификация шифра SNOW 3G<ref> [http://www.gsma.com/aboutus/wp-content/uploads/2014/12/uea2designevaluation.pdf UEA2 Design and Evaluation Report] </ref>.
<ref name = "snow">
{{публикация|статья
|автор имя= Patrik Ekdahl, Thomas Johansson
|заглавие= A new version of the stream cipher SNOW
|язык= en
|издание= Springer
|год= 2003
|volume= 2595
|pages= 47-61
|issn= 0302-9743
|ссылка= https://link.springer.com/chapter/10.1007/3-540-36492-7_5
}} </ref>, и в результате SNOW не был включен в набор алгоритмов NESSIE. Авторы разработали новую версию шифра SNOW 2.0, в которой устранили недостатки и улучшили производительность. Во время оценки ETSI SAGE алгоритм шифрования был дополнительно изменён, чтобы повысить его устойчивость к алгебраическим атакам. Результатом таких улучшений стала модификация шифра SNOW 3G<ref> [http://www.gsma.com/aboutus/wp-content/uploads/2014/12/uea2designevaluation.pdf UEA2 Design and Evaluation Report] </ref>.


Версия протокола передачи данных [[5G]] предъявляла высокие требования к криптографическим алгоритмам, используемым для воздушного шифрования, поэтому ''Ericsson Research'' совместно с Лундским университетом пересмотрели алгоритм SNOW 3G и обновили его до нового, более быстрого шифра под названием SNOW-V<ref> {{Cite web| url = https://www.ericsson.com/en/blog/2020/6/encryption-in-virtualized-5g-environments| title = Encryption in virtualized 5G environments}} </ref>.
Версия протокола передачи данных [[5G]] предъявляла высокие требования к криптографическим алгоритмам, используемым для воздушного шифрования, поэтому ''Ericsson Research'' совместно с Лундским университетом пересмотрели алгоритм SNOW 3G и обновили его до нового, более быстрого шифра под названием SNOW-V<ref> {{Cite web| url = https://www.ericsson.com/en/blog/2020/6/encryption-in-virtualized-5g-environments| title = Encryption in virtualized 5G environments}} </ref>.
Строка 13: Строка 25:
=== Общая схема работы ===
=== Общая схема работы ===
[[Файл:Схема работы SNOW 1.0.jpg|thumb|Схема работы SNOW 1.0]]
[[Файл:Схема работы SNOW 1.0.jpg|thumb|Схема работы SNOW 1.0]]
Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем <math>\mathbb{F}_{2^{32}}</math>. Выход регистра подается на вход конечного автомата. КА состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для РСЛОС, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных КА и последней записи РСЛОС. После этого весь шифр синхронизируется один раз, и следующие 32 бита ключевого потока вычисляются путем ещё одного побитового сложения выходных данных конечного автомата и последней записи РСЛОС. Мы снова синхронизируем и продолжаем в том же духе.
Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем <math>\mathbb{F}_{2^{32}}</math>. Выход регистра подается на вход конечного автомата. КА состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для РСЛОС, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных КА и последней записи РСЛОС. После этого весь шифр синхронизируется один раз, и следующие 32 бита ключевого потока вычисляются путем ещё одного побитового сложения выходных данных конечного автомата и последней записи РСЛОС. Мы снова синхронизируем и продолжаем в том же духе. <ref name="snow" />


=== Детальная схема работы ===
=== Детальная схема работы ===
Строка 38: Строка 50:


Наконец, [[S-box|S-блок]], обозначаемый S (x), состоит из четырёх идентичных 8-8 битных S-блоков и перестановки полученных битов. Входные данные разделены на 4 байта от, каждый байт входит в нелинейное отображение от 8 бит до 8 бит. После этого отображения биты в результирующем слове переставляются, чтобы сформировать окончательный результат S-блока.
Наконец, [[S-box|S-блок]], обозначаемый S (x), состоит из четырёх идентичных 8-8 битных S-блоков и перестановки полученных битов. Входные данные разделены на 4 байта от, каждый байт входит в нелинейное отображение от 8 бит до 8 бит. После этого отображения биты в результирующем слове переставляются, чтобы сформировать окончательный результат S-блока.
<ref>

{{публикация|статья
|автор= Patrik Ekdahl, Thomas Johansson
|заглавие= SNOW-a new stream cipher
|язык= en
|издание= Proceedings of first open NESSIE workshop, KU-Leuven
|год= 2000
|месяц= 11
|день= 13
|issue=
|pages= 167-168
|ссылка= https://www.semanticscholar.org/paper/SNOW-A-new-stream-cipher-Ekdahl-Johansson/900e081fa7ba0d0b45e36185e327e1081bf55d28?p2df
}} </ref>
== Известные атаки ==
== Известные атаки ==
* В феврале 2002 года Филипп Хоукс и Грегори Роуз описали атаку<ref> {{Cite web|url = https://www.researchgate.net/publication/221274592_Guess-and-determine_attacks_on_SNOW| title = Guess-and-determine attacks on SNOW}} </ref> методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство — неудачный выбор полинома обратной связи в SNOW 1.0.
* В феврале 2002 года Филипп Хоукс и Грегори Роуз описали атаку методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство — неудачный выбор полинома обратной связи в SNOW 1.0.<ref>
{{публикация|статья
* В августе 2003 года Даи Ватанабе, [[Бирюков, Алекс|Алекс Бирюков]] и Кристоф Де Канньер описали атаку<ref> {{Cite web|url = https://link.springer.com/chapter/10.1007/978-3-540-24654-1_16| title = A Distinguishing Attack of SNOW 2.0 with Linear Masking Method}} </ref> на SNOW 2.0 методом линейной маскировки. Эта атака использует <math> 2^{230}</math> битов потока и <math> 2^{225}</math> шагов анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.
|автор = Philip Hawkes, Gregory G. Rose

|заглавие= Guess-and-determine attacks on SNOW
|язык= en
|издание= Springer
|год= 2002
|volume= 2595
|pages= 37–46
|doi= 10.1007/3-540-36492-7\_4
|ссылка= https://link.springer.com/chapter/10.1007/3-540-36492-7_4
}}
</ref>
* В августе 2003 года Даи Ватанабе, [[Бирюков, Алекс|Алекс Бирюков]] и Кристоф Де Канньер описали атаку на SNOW 2.0 методом линейной маскировки. Эта атака использует <math> 2^{230}</math> битов потока и <math> 2^{225}</math> шагов анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.<ref>
{{публикация|статья
|автор = Dai Watanabe, Alex Biryukov, Christophe De Cannière
|заглавие= A Distinguishing Attack of SNOW 2.0 with Linear Masking Method
|язык= en
|издание= Springer
|год= 2003
|volume= 3006
|pages= 222-233
|ссылка= https://link.springer.com/chapter/10.1007/978-3-540-24654-1_16
}}
</ref>
== Применение ==
== Применение ==
SNOW 2.0 — это один из потоковых шифров, выбранных для стандарта ISO / IEC ISO / IEC 18033-4 [[International Organization for Standardization|ISO/IEC]] standard ISO/IEC 18033-4<ref> {{Cite web|url=https://www.iso.org/standard/54532.html|title=ISO/IEC 18033-4:2011 Information technology — Security techniques — Encryption algorithms — Part 4: Stream ciphers}} </ref>.
SNOW 2.0 — это один из потоковых шифров, выбранных для стандарта ISO / IEC ISO / IEC 18033-4 [[International Organization for Standardization|ISO/IEC]] standard ISO/IEC 18033-4<ref> {{Cite web|url=https://www.iso.org/standard/54532.html|title=ISO/IEC 18033-4:2011 Information technology — Security techniques — Encryption algorithms — Part 4: Stream ciphers}} </ref>.


SNOW 3G
SNOW 3G<ref>{{Cite web|url=https://www.gsma.com/aboutus/wp-content/uploads/2014/12/snow3gspec.pdf|title=Snow 3G|access-date=13 October 2017}}</ref> выбран в качестве потокового шифра для алгоритмов шифрования 3GPP UEA2 и UIA2 .<ref>[http://www.quintillion.co.jp/3GPP/Specs/etsi_sage_doc1_v1_1.pdf UEA2 & UIA2 Specification] {{webarchive |url=https://web.archive.org/web/20120319194406/http://www.quintillion.co.jp/3GPP/Specs/etsi_sage_doc1_v1_1.pdf |date=March 19, 2012 }}</ref>.
<ref>
{{публикация|статья
|автор = J. Molina-Gil, Caballero-Gil, Caballero-Gil, Amparo Fúster-Sabater
|заглавие= Analysis and Implementation of the SNOW 3G Generator Used in 4G/LTE Systems
|язык= en
|издание= Springer
|год= 2013
|volume= 239
|pages= 499-508
|isbn = 978-3-319-01854-6
|doi = 10.1007/978-3-319-01854-6_51
|ссылка= https://link.springer.com/chapter/10.1007/978-3-319-01854-6_51
}}
</ref>
выбран в качестве потокового шифра для алгоритмов шифрования 3GPP UEA2 и UIA2 .<ref>[http://www.quintillion.co.jp/3GPP/Specs/etsi_sage_doc1_v1_1.pdf UEA2 & UIA2 Specification] {{webarchive |url=https://web.archive.org/web/20120319194406/http://www.quintillion.co.jp/3GPP/Specs/etsi_sage_doc1_v1_1.pdf |date=March 19, 2012 }}</ref>.


== Примечания ==
== Примечания ==
{{примечания|28em}}
{{примечания|28em}}

== Литература ==
* [http://www.madchat.fr/crypto/hash-lib-algo/snow/snow10.pdf SNOW — a new stream cipher], описание разработчиков SNOW 1.0
* [https://link.springer.com/chapter/10.1007/3-540-36492-7_5 A New Version of the Stream Cipher SNOW], описание разработчиков SNOW 2.0
* [https://tosc.iacr.org/index.php/ToSC/article/view/8356 A new SNOW stream cipher called SNOW-V], описание разработчиков SNOW-V


{{симметричные криптоалгоритмы}}
{{симметричные криптоалгоритмы}}

Версия от 08:58, 13 ноября 2020

SNOW
Предназначение Шифрование

SNOW — словоориентированный синхронный поточный шифр, разработанный в 2000 году в Лундском университете (Швеция).

История

SNOW 1.0, первоначально просто SNOW, был представлен проекту NESSIE. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации регистра сдвига с линейной обратной связью (РСЛОС) и конечного автомата (КА), где РСЛОС также передает функцию следующего состояния КА.

В первой версии были обнаружены слабые места [1], и в результате SNOW не был включен в набор алгоритмов NESSIE. Авторы разработали новую версию шифра SNOW 2.0, в которой устранили недостатки и улучшили производительность. Во время оценки ETSI SAGE алгоритм шифрования был дополнительно изменён, чтобы повысить его устойчивость к алгебраическим атакам. Результатом таких улучшений стала модификация шифра SNOW 3G[2].

Версия протокола передачи данных 5G предъявляла высокие требования к криптографическим алгоритмам, используемым для воздушного шифрования, поэтому Ericsson Research совместно с Лундским университетом пересмотрели алгоритм SNOW 3G и обновили его до нового, более быстрого шифра под названием SNOW-V[3].

Cхема работы SNOW

Общая схема работы

Схема работы SNOW 1.0

Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем . Выход регистра подается на вход конечного автомата. КА состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для РСЛОС, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных КА и последней записи РСЛОС. После этого весь шифр синхронизируется один раз, и следующие 32 бита ключевого потока вычисляются путем ещё одного побитового сложения выходных данных конечного автомата и последней записи РСЛОС. Мы снова синхронизируем и продолжаем в том же духе. [1]

Детальная схема работы

В начальный момент времени t = 0 происходит инициализация регистра сдвига 32-битными значениями .

Обратная связь регистра сдвига задается многочленом:

где порождается неприводимым многочленом

,

над и .

Выход КА назовем . Он рассчитывается по следующей формуле:

,

где  — целочисленное сложение Выход конечного автомата сравнивается с s(16) по модулю 2 для формирования потокового ключа, то есть

,

где  — сложение по mod2 Для конечного формирования шифр-текста потоковый ключ сравнивается с открытым текстом по модулю 2. Внутри конечного автомата новые значения для R1 и R2 присваиваются по следующим формулам:

,

где  — циклический сдвиг влево

Наконец, S-блок, обозначаемый S (x), состоит из четырёх идентичных 8-8 битных S-блоков и перестановки полученных битов. Входные данные разделены на 4 байта от, каждый байт входит в нелинейное отображение от 8 бит до 8 бит. После этого отображения биты в результирующем слове переставляются, чтобы сформировать окончательный результат S-блока. [4]

Известные атаки

  • В феврале 2002 года Филипп Хоукс и Грегори Роуз описали атаку методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство — неудачный выбор полинома обратной связи в SNOW 1.0.[5]
  • В августе 2003 года Даи Ватанабе, Алекс Бирюков и Кристоф Де Канньер описали атаку на SNOW 2.0 методом линейной маскировки. Эта атака использует битов потока и шагов анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.[6]

Применение

SNOW 2.0 — это один из потоковых шифров, выбранных для стандарта ISO / IEC ISO / IEC 18033-4 ISO/IEC standard ISO/IEC 18033-4[7].

SNOW 3G [8] выбран в качестве потокового шифра для алгоритмов шифрования 3GPP UEA2 и UIA2 .[9].

Примечания

  1. 1 2 A new version of the stream cipher SNOW : [англ.] // Springer. — 2003. — Vol. 2595. — P. 47-61. — ISSN 0302-9743.
  2. UEA2 Design and Evaluation Report
  3. Encryption in virtualized 5G environments.
  4. Patrik Ekdahl, Thomas Johansson. SNOW-a new stream cipher : [англ.] // Proceedings of first open NESSIE workshop, KU-Leuven. — 2000. — 13 November. — P. 167-168.
  5. Philip Hawkes, Gregory G. Rose. Guess-and-determine attacks on SNOW : [англ.] // Springer. — 2002. — Vol. 2595. — P. 37–46. — doi:10.1007/3-540-36492-7\_4.
  6. Dai Watanabe, Alex Biryukov, Christophe De Cannière. A Distinguishing Attack of SNOW 2.0 with Linear Masking Method : [англ.] // Springer. — 2003. — Vol. 3006. — P. 222-233.
  7. ISO/IEC 18033-4:2011 Information technology — Security techniques — Encryption algorithms — Part 4: Stream ciphers.
  8. J. Molina-Gil, Caballero-Gil, Caballero-Gil, Amparo Fúster-Sabater. Analysis and Implementation of the SNOW 3G Generator Used in 4G/LTE Systems : [англ.] // Springer. — 2013. — Vol. 239. — P. 499-508. — ISBN 978-3-319-01854-6. — doi:10.1007/978-3-319-01854-6_51.
  9. UEA2 & UIA2 Specification Архивировано 19 марта 2012 года.