Jump to content

ША-3

(Перенаправлено с SHA3-512 )

Безопасные алгоритмы хеширования
Концепции
хэш-функции , SHA , DSA
Основные стандарты
ША-0 , ША-1 , ША-2 , ША-3
ША-3
(Кечак)
Общий
Дизайнеры Гвидо Бертони, Джоан Демен , Микаэль Питерс и Жиль ван Аш .
Впервые опубликовано 2016 ; 8 лет назад ( 2016 )
Ряд ( ША-0 ), ША-1 , ША-2 , ША-3
Сертификация ФИПС ПАБ 202
Деталь
Размеры дайджеста произвольный
Структура губка строительство
Скорость 12,6 cpb на типичной машине с процессором x86-64 для Keccak-f[1600] плюс XOR 1024 бит, [1] что примерно соответствует SHA2-256.
Лучший публичный криптоанализ
Прообраз атаки на Кечак-512 уменьшен до 8 выстрелов, требуется 2 511.5 время и 2 508 память. [2] Различители с нулевой суммой существуют для полного 24-раундового Keccak-f[1600], хотя их нельзя использовать для атаки на саму хэш-функцию. [3]

SHA-3 ( алгоритм безопасного хеширования 3 ) является новейшим [4] член семейства стандартов Secure Hash Algorithm , выпущенных NIST 5 августа 2015 г. [5] [6] [7] Хотя SHA-3 входит в одну и ту же серию стандартов, он внутренне отличается от MD5 -подобной структуры SHA -1 и SHA-2 .

SHA-3 — это подмножество более широкого семейства криптографических примитивов Keccak ( / ˈ k ɛ æ k / или / ˈ k ɛ ɑː k / ), [8] [9] Разработан Гвидо Бертони , Джоан Демен , Микаэлем Петерсом и Жилем Ван Аше на основе RadioGatún . Авторы Кечака предложили дополнительные варианты использования этой функции, (пока) не стандартизированные NIST, включая поточный шифр , систему шифрования с аутентификацией , схему хеширования «дерево» для более быстрого хеширования на определенных архитектурах. [10] [11] а AEAD шифрует Кейака и Кетье. [12] [13]

Keccak основан на новом подходе, называемом строительством из губки . [14] Конструкция губки основана на широкой случайной функции или случайной перестановке и позволяет вводить («поглощать» в терминологии губки) любой объем данных и выводить («сжимать») любой объем данных, действуя при этом как псевдослучайная функция по отношению к все предыдущие входы. Это приводит к большой гибкости.

По состоянию на 2007 год NIST не планировал отзывать SHA-2 или удалять его из пересмотренного стандарта Secure Hash. [ нужно обновить? ] Целью SHA-3 является то, что при необходимости его можно напрямую заменить SHA-2 в текущих приложениях, а также значительно повысить надежность общего набора инструментов алгоритма хеширования NIST. [15]

Для небольших размеров сообщений создатели алгоритмов Keccak и функций SHA-3 предлагают использовать более быструю функцию KangarooTwelve с скорректированными параметрами и новым режимом хеширования дерева без дополнительных накладных расходов.

Алгоритм Кекчака — это работа Гвидо Бертони, Джоан Демен (которая также разработала шифр Рейндала совместно с Винсентом Рейменом ), Микаэля Петерса и Жиля Ван Аша . Он основан на более ранних разработках хэш-функций PANAMA и RadioGatún . PANAMA была разработана Дэменом и Крейгом Клэппом в 1998 году. RadioGatún, преемник PANAMA, был разработан Дэменом, Питерсом и Ван Ашем и был представлен на семинаре NIST Hash Workshop в 2006 году. [16] Исходный реализации код эталонной был передан в общественное достояние посредством CC0 отказа от . [17]

В 2006 году NIST начал организовывать конкурс хэш-функций NIST для создания нового стандарта хеширования SHA-3. SHA-3 не предназначен для замены SHA-2 , поскольку никаких серьезных атак на SHA-2 публично не было продемонстрировано. [ нужно обновить ] . Из-за успешных атак на MD5 , SHA-0 и SHA-1 , [18] [19] NIST осознал необходимость в альтернативном, непохожем криптографическом хеше, которым стал SHA-3.

После подготовительного периода заявки должны были быть поданы к концу 2008 года. Кечак был принят в качестве одного из 51 кандидата. В июле 2009 года для второго тура было отобрано 14 алгоритмов. Кечак вышел в последний раунд в декабре 2010 года. [20]

Во время конкурса участникам разрешалось «настраивать» свои алгоритмы для решения обнаруженных проблем. Изменения, внесенные в Кечак: [21] [22]

  • Количество раундов было увеличено с 12 + ℓ до 12 + 2ℓ, чтобы обеспечить более консервативный подход к безопасности.
  • Заполнение сообщений было изменено с более сложной схемы на простую 10 * 1 шаблон описан ниже.
  • Скорость r была увеличена до предела безопасности, а не округлена до ближайшей степени 2.

2 октября 2012 года Кечак был признан победителем конкурса. [8]

В 2014 году NIST опубликовал проект FIPS 202 «Стандарт SHA-3: хэш на основе перестановок и функции расширяемого вывода». [23] FIPS 202 был утвержден 5 августа 2015 года. [24]

5 августа 2015 года NIST объявил, что SHA-3 стал стандартом хеширования. [25]

Ослабление противоречий

[ редактировать ]

В начале 2013 года NIST объявил, что выберет другие значения для «емкости», параметра общей силы и скорости, для стандарта SHA-3 по сравнению с представленными. [26] [27] Изменения вызвали некоторые волнения.

Конкуренция хэш-функций требовала, чтобы хэш-функции были как минимум столь же безопасны, как экземпляры SHA-2. Это означает, что d -битный выход должен иметь d /2-битную устойчивость к атакам коллизий и d -битную устойчивость к атакам на прообразы , максимум, достижимый для d бит вывода. Доказательство безопасности Keccak позволяет регулировать уровень безопасности на основе «емкости» c , обеспечивая c /2-битную устойчивость как к атакам на коллизии, так и к атакам на прообразы. Чтобы соответствовать первоначальным правилам соревнований, авторы Кечака предложили c = 2 d . Объявленное изменение заключалось в том, чтобы принять одинаковую d /2-битную защиту для всех форм атак и стандартизировать c = d . Это ускорило бы работу Keccak, позволив дополнительные d хэшировать бит ввода на каждой итерации. Однако хеш-функции больше не были бы заменой с той же устойчивостью к прообразу, что и SHA-2; его сократили бы вдвое, что сделало бы его уязвимым для достижений в области квантовых вычислений, что фактически еще раз сократило бы его вдвое. [28]

В сентябре 2013 года Дэниел Дж. Бернштейн предложил в NIST списке рассылки хэш-форума [29] для усиления безопасности до 576-битной емкости, которая изначально была предложена в качестве Keccak по умолчанию, в дополнение к спецификациям SHA-3 и не включена в них. [30] Это обеспечило бы по крайней мере SHA3-224 и SHA3-256 ту же устойчивость к прообразу, что и их предшественники SHA-2, но SHA3-384 и SHA3-512 имели бы значительно меньшую устойчивость к прообразу, чем их предшественники SHA-2. В конце сентября команда Keccak ответила, заявив, что они предложили 128-битную безопасность, установив c = 256 в качестве опции уже в своем предложении SHA-3. [31] Хотя снижение емкости было по их мнению оправданным, в свете отрицательного ответа они предложили увеличить емкость до c = 512 бит для всех случаев. Это будет такой же уровень безопасности, как и любой предыдущий стандарт, вплоть до 256-битного уровня безопасности, обеспечивая при этом разумную эффективность. [32] но не 384-/512-битное сопротивление прообразу, обеспечиваемое SHA2-384 и SHA2-512. Авторы заявили, что «заявлять или полагаться на уровни безопасности выше 256 бит бессмысленно».

В начале октября 2013 года Брюс Шнайер раскритиковал решение NIST из-за его возможных пагубных последствий для принятия алгоритма, заявив:

В воздухе слишком много недоверия. NIST рискует опубликовать алгоритм, которому никто не будет доверять и который никто (кроме тех, кого заставят) не будет использовать. [33]

Позже он отказался от своего предыдущего заявления, заявив:

Я ошибся, когда написал, что NIST внес в алгоритм «внутренние изменения». Это было неряшливо с моей стороны. Перестановка Кечака остается неизменной. NIST предложил уменьшить мощность хеш-функции во имя производительности. Одной из приятных особенностей Keccak является то, что он легко настраивается. [33]

Пол Кроули, криптограф и старший разработчик независимой компании по разработке программного обеспечения, выразил поддержку этому решению, заявив, что Keccak должен быть настраиваемым и нет никаких причин для разных уровней безопасности в рамках одного примитива. Он также добавил:

Да, немного обидно за конкурс, что они потребовали для участников определенный уровень безопасности, а потом пошли публиковать стандарт с другим. Но сейчас ничего нельзя сделать, чтобы это исправить, кроме возобновления соревнований. Требование, чтобы они придерживались своих ошибок, никому не улучшает ситуацию. [34]

Возникла некоторая путаница в том, что в Keccak могли быть внесены внутренние изменения, которые были выяснены исходной командой, заявившей, что предложение NIST для SHA-3 является подмножеством семейства Keccak, для которого можно генерировать тестовые векторы, используя их ссылочный код. были представлены на конкурс, и что это предложение стало результатом серии обсуждений между ними и хэш-командой NIST. [35]

В ответ на разногласия в ноябре 2013 года Джон Келси из NIST предложил вернуться к исходному предложению c = 2 d для всех экземпляров замены SHA-2. [36] Возврат был подтвержден в последующих проектах. [37] и в финальном выпуске. [5]

Иллюстрация конструкции губки
Конструкция губки для хэш-функций. P i — входные данные, Z i — хешированные выходные данные. Неиспользованная «емкость» c должна быть в два раза больше желаемой устойчивости к коллизиям или атакам прообразов .

SHA-3 использует губчатую конструкцию , [14] при котором данные «впитываются» в губку, а затем «выжимается» результат. На этапе поглощения блоки сообщений подвергаются операции XOR в подмножество состояния, которое затем преобразуется целиком с помощью функции перестановки. . (Вызов перестановка может сбить с толку. Технически это перестановка пространства состояний, то есть перестановка множества с элементы, но он делает больше, чем просто переставляет биты вектора состояния. [ нужна ссылка ] ) На этапе «сжатия» выходные блоки считываются из одного и того же подмножества состояния, чередуясь с функцией преобразования состояния. . Размер той части состояния, которая записывается и читается, называется «скоростью» (обозначается ), а размер части, не затронутой вводом/выводом, называется «емкостью» (обозначается ). Емкость определяет безопасность схемы. Максимальный уровень безопасности составляет половину емкости.

Учитывая входную битовую строку , функция заполнения , функция перестановки который работает с битовыми блоками ширины , ставка и выходная длина , у нас есть мощности и конструкция из губки , что дает битовую строку длины , работает следующим образом: [6] : 18 

  • дополните вход N с помощью функции Pad, получив дополненную битовую строку P с длиной, кратной (такой, что это целое число)
  • разбить P на n последовательных r -битных частей P 0 , ..., P n −1
  • инициализировать состояние S строкой из b нулевых битов
  • поглотить вход в состояние: для каждого блока P i :
    • расширить P i в конце строкой из c нулевых битов, получив строку длиной b
    • XOR это с S
    • применить перестановку блоков f к результату, получив новое состояние S
  • инициализировать Z как пустую строку
  • а длина Z меньше d :
    • добавить первые r бит S к Z
    • если длина Z все еще меньше d бит, примените f к S , получив новое состояние S
  • усечь Z до d биты

Тот факт, что внутреннее состояние S содержит c дополнительных битов информации в дополнение к тому, что выводится на Z, предотвращает атаки расширения длины SHA-2, SHA-1, MD5 и другие хэши, основанные на конструкции Меркла-Дамгорда , которым подвержены .

В SHA-3 состояние S состоит из -битных слов размером 5 × 5 массива w w = 64), b = 5 × 5 × w = 5 × 5 × 64 = всего 1600 бит. Keccak также определен для меньших размеров слов степени 2 w до 1 бита (общее состояние 25 бит). Небольшие размеры состояний можно использовать для тестирования криптоаналитических атак, а промежуточные размеры состояний (от w = 8 200 бит до w = 32 800 бит) можно использовать в практических и легких приложениях. [12] [13]

Для экземпляров SHA3-224, SHA3-256, SHA3-384 и SHA3-512 r больше, чем d , поэтому нет необходимости в дополнительных перестановках блоков на этапе сжатия; ведущие d биты состояния представляют собой желаемый хэш. Однако SHAKE128 и SHAKE256 допускают произвольную длину вывода, что полезно в таких приложениях, как оптимальное заполнение асимметричного шифрования .

Заполнение

[ редактировать ]

Чтобы гарантировать, что сообщение может быть равномерно разделено на блоки r -бит, требуется заполнение. SHA-3 использует шаблон 10. * 1 в своей функции заполнения: бит 1, за которым следуют ноль или более 0 бит (максимум r − 1 ) и последний 1 бит.

Максимум из r - 1 нулевых битов возникает, когда длина последнего блока сообщения составляет r - 1 бит. Затем после начального 1 бита добавляется еще один блок, содержащий r - 1 нулевых битов перед последним 1 битом.

Два бита 1 будут добавлены, даже если длина сообщения уже делится на r . [6] : 5.1  В этом случае к сообщению добавляется еще один блок, содержащий 1 бит, за ним следует блок из r − 2 нулевых бит и еще 1 бит. Это необходимо для того, чтобы сообщение длиной, кратной r, заканчивающееся чем-то вроде заполнения, не создавало тот же хэш, что и сообщение с удаленными этими битами.

Начальный 1 бит необходим, чтобы сообщения, отличающиеся лишь несколькими дополнительными 0 битами в конце, не создавали одинаковый хэш.

Положение последнего бита 1 указывает, какая скорость r использовалась (многоскоростное заполнение), что необходимо для работы доказательства безопасности для различных вариантов хэша. Без него разные варианты хеша одного и того же короткого сообщения были бы одинаковыми вплоть до усечения.

Перестановка блоков

[ редактировать ]

Блочное преобразование f , которое представляет собой Keccak-f[1600] для SHA-3, представляет собой перестановку, использующую операции XOR , AND и NOT и предназначенную для простой реализации как в программном, так и в аппаратном обеспечении.

степени двойки Он определен для любого размера слова , w = 2. биты. В основном представлении SHA-3 используются 64-битные слова, = 6 .

Состояние можно рассматривать как размером 5 × 5 × w массив битов . Пусть a [ i ][ j ][ k ] будет битом (5 i + j ) × w + k входных данных, используя с прямым порядком соглашение о нумерации битов байтов и индексацию по строкам . Т.е. i выбирает строку, j — столбец, а k — бит.

Индексная арифметика выполняется по модулю 5 для первых двух измерений и по модулю w для третьего.

Базовая функция перестановки блоков состоит из 12 + 2 раундов по пять шагов:

θ (тета)
Вычислите четность каждого из 5 w (320, когда w = 64 ) 5-битных столбцов и исключите-или это для двух соседних столбцов в обычном порядке. Точнее, a [ i ][ j ][ k ] ← a [ i ][ j ][ k ] ⊕ четность (a[0...4][ j -1][ k ]) ⊕ четность (a[ 0...4][ j +1][ k −1])
ρ (ро)
Побитовое поворот каждого из 25 слов на разные треугольные числа 0, 1, 3, 6, 10, 15, .... Точнее, a [0][0] не поворачивается, и для всех 0 ≤ t < 24 , a [ i ][ j ][ k ] ← a [ i ][ j ][ k −( t +1)( t +2)/2] , где .
π (пи)
Переставьте 25 слов по фиксированному шаблону. а [3 я +2 j ][ я ] ← а [ я ][ j ] .
х (чи)
Побитовое объединение по строкам, используя x x ⊕ (¬ y & z ) . Точнее, a [ i ][ j ][ k ] ← a [ i ][ j ][ k ] ⊕ (¬ a [ i ][ j + 1 ][ k ] & a [ i ][ j + 2 ] [ к ]) . Это единственная нелинейная операция в SHA-3.
я (йота)
Эксклюзивный - или круглая константа в одно слово состояния. Точнее, в раунде n , для 0 ≤ m , a [0][0][2 м −1] подвергается операции XOR с битом m + 7 n 8-й степени последовательности LFSR . Это нарушает симметрию, сохраняемую на других этапах.

Скорость

[ редактировать ]

Скорость хеширования SHA-3 длинных сообщений определяется вычислением f = Keccak-f[1600] и выполнением операции XOR S с расширенным Pi операцией над b = 1600 бит. Однако, поскольку последние c бит расширенного P i в любом случае равны 0, а XOR с 0 является NOP, достаточно выполнить операции XOR только для r бит ( r = 1600 − 2 × 224 = 1152 бит для SHA3-224). , 1088 бит для SHA3-256, 832 бит для SHA3-384 и 576 бит для SHA3-512). Чем ниже r (и, наоборот, чем выше c = b r = 1600 − r ), тем менее эффективным, но более безопасным становится хеширование, поскольку меньшее количество битов сообщения может быть преобразовано в состояние с помощью XOR (быстрая операция) перед каждым применение вычислительно затратного f . Авторы сообщают о следующих скоростях программных реализаций Keccak-f[1600] плюс XOR 1024 бит: [1] что примерно соответствует SHA3-256:

  • 57,4 cpb на IA-32, Intel Pentium 3 [38]
  • 41 cpb на IA-32+MMX, Intel Pentium 3
  • 20 cpb на IA-32+SSE, Intel Core 2 Duo или AMD Athlon 64
  • 12,6 ЦПБ на типичной машине с процессором x86-64
  • 6–7 cb на ИА-64 [1]

Для точного SHA3-256 на x86-64 Бернштейн измеряет 11,7–12,25 cpb в зависимости от процессора. [39] : 7  SHA-3 критиковали за медленную работу на архитектурах набора команд (ЦП), в которых нет инструкций, предназначенных специально для более быстрого вычисления функций Keccak: SHA2-512 более чем в два раза быстрее, чем SHA3-512, а SHA-1 более чем в два раза быстрее, чем SHA3-512. в три раза быстрее на процессоре Intel Skylake с тактовой частотой 3,2 ГГц. [40] Авторы отреагировали на эту критику предложением использовать SHAKE128 и SHAKE256 вместо SHA3-256 и SHA3-512 за счет сокращения сопротивления прообраза вдвое (но при сохранении сопротивления коллизиям). При этом производительность находится на уровне SHA2-256 и SHA2-512.

Однако в аппаратных реализациях SHA-3 заметно быстрее всех остальных финалистов, [41] а также быстрее, чем SHA-2 и SHA-1. [40]

По состоянию на 2018 год ARMv8 от ARM [42] и архитектуры IBM s390x [43] включают специальные инструкции, которые позволяют алгоритмам Keccak выполняться быстрее. Также были предложения по расширению RISC-V для добавления инструкций, специфичных для Keccak. [44]

Экземпляры

[ редактировать ]

Стандарт NIST определяет следующие экземпляры для сообщения M и длины вывода d : [6] : 20, 23 

Пример Выход
размер д
Оценить р
= размер блока
Емкость c Определение Сила безопасности в битах сопротивления
Столкновение Прообраз 2-й прообраз
SHA3-224( М ) 224 1152 448 Кечак[448]( М || 01, 224) 112 224 224
SHA3-256( М ) 256 1088 512 Кечак[512]( М || 01, 256) 128 256 256
SHA3-384( М ) 384 832 768 Кечак[768]( М || 01, 384) 192 384 384
SHA3-512( М ) 512 576 1024 Кечак[1024]( М || 01, 512) 256 512 512
ВСтряска128( М , д ) д 1344 256 Кечак[256]( М || 1111, д ) мин( д /2,128) ≥мин( д ,128) мин( д ,128)
ВСтряска256( М , д ) д 1088 512 Кечак[512]( М || 1111, д ) мин( д /2,256) ≥мин( д ,256) мин( д ,256)

Со следующими определениями

  • Keccak[ c ]( N , d ) = губка[Keccak-f[1600], площадку10 * 1, р ]( Н , д ) [6] : 20 
  • Кечак-f[1600] = Кечак-p[1600, 24] [6] : 17 
  • c - емкость
  • r — ставка = 1600 − c
  • N — входная битовая строка

Экземпляры SHA-3 представляют собой замену SHA-2 и имеют идентичные свойства безопасности.

SHAKE будет генерировать из своей губки столько битов, сколько запрошено, таким образом являясь функциями расширяемого вывода (XOF). Например, SHAKE128(M, 256) можно использовать в качестве хеш-функции с битовым потоком из 256 символов и уровнем безопасности 128 бит. Произвольные длины могут использоваться в качестве генераторов псевдослучайных чисел. В качестве альтернативы SHAKE256(M, 128) можно использовать как хэш-функцию с длиной 128 бит и сопротивлением 128 бит. [6]

Все экземпляры добавляют к сообщению несколько битов, крайний правый из которых представляет суффикс разделения домена . Целью этого является обеспечение невозможности создания сообщений, которые производят одинаковый хеш-выход для разных приложений хеш-функции Keccak. Существуют следующие суффиксы разделения доменов: [6] [45]

Суффикс Значение
...0 зарезервировано для будущего использования
01 ША-3
...11 RawSHAKE
1111 встряхнуть

Дополнительные экземпляры

[ редактировать ]

В декабре 2016 года NIST опубликовал новый документ NIST SP.800-185. [46] описание дополнительных производных функций SHA-3:

Пример Описание
cSHAKE128( Икс , Л , Н , С ) Версия SHAKE, поддерживающая явное разделение доменов с помощью параметров настройки.
cSHAKE256( Икс , Л , Н , С )
KMAC128( К , Икс , Л , С ) Ключевая хеш-функция, основанная на Keccak. Также может использоваться без ключа как обычная хэш-функция.
KMAC256( К , Икс , Л , С )
KMACXOF128( К , Икс , Л , С )
KMACXOF256( К , Икс , Л , С )
TupleHash128( X , L , S ) Функция для хеширования кортежей строк. Выходные данные этой функции зависят как от содержимого, так и от последовательности входных строк.
TupleHash256( X , L , S )
TupleHashXOF128( X , L , S )
ТуплеХашXOF256( X , L , S )
Параллельный хэш128( X , B , L , S ) Функция, предназначенная для использования параллелизма в современных процессорах для более быстрого хеширования. В отличие от KangarooTwelve, не использует Кечак с уменьшенным раундом.
ParallelHash256( X , B , L , S )
ParallelHashXOF128(ParallelHashXOF128 , B, L, (
ПараллельныйХэшXOF256( X , B , L , S )

• X — основная входная битовая строка. Длина может быть любой, включая нулевую.

• L — целое число, представляющее запрошенную длину вывода в битах.

• N — битовая строка имени функции, используемая NIST для определения функций, основанных на cSHAKE. Если не требуется никакая другая функция, кроме cSHAKE, N устанавливается в пустую строку.

• S — битовая строка настройки. Пользователь выбирает эту строку, чтобы определить вариант функции. Если настройка не требуется, для S устанавливается пустая строка.

• K — строка ключевых битов любой длины, включая нулевую.

• B — размер блока в байтах для параллельного хеширования. Это может быть любое целое число такое, что 0 < B < 2. 2040 .

Более поздние события

[ редактировать ]

КенгуруДвенадцать

[ редактировать ]
КенгуруДвенадцать
Общий
Дизайнеры Гвидо Бертони, Жоан Дэмен , Михаэль Питерс, Жиль Ван Аш , Ронни Ван Кир, Бенуа Вигье
Впервые опубликовано 10 августа 2016 г .; 7 лет назад ( 10.08.2016 )
Получено из Кечак
Деталь
Размеры дайджеста произвольный
Структура построение губки и перемешивание деревьев с помощью прыжков кенгуру
Раунды 12
Скорость 0,51 cpb на SkylakeX с AVX-512 [47]
Лучший публичный криптоанализ
То же, что и у Кечака

В 2016 году та же команда, которая создала функции SHA-3 и алгоритм Keccak, представила более быстрые альтернативы с сокращенным числом раундов (сокращено до 12 и 14 раундов по сравнению с 24 в SHA-3), которые могут использовать доступность параллельного выполнения из-за использования дерева. хеширование : KangarooTwelve и MarsupilamiFourteen. [48]

Эти функции отличаются от ParallelHash, стандартизированной FIPS распараллеливаемой хэш-функции на основе Keccak, в отношении параллелизма, поскольку они быстрее, чем ParallelHash, для сообщений небольшого размера.

Уменьшение количества раундов оправдано огромными криптоаналитическими усилиями, сосредоточенными на Кечаке, которые не привели к практическим атакам на что-либо близкое к двенадцатираундному Кечаку. Эти высокоскоростные алгоритмы не являются частью SHA-3 (поскольку они являются более поздней разработкой) и, следовательно, не соответствуют FIPS; но поскольку они используют ту же самую перестановку Keccak, они безопасны до тех пор, пока нет атак на SHA-3, сокращенных до 12 раундов. [48]

KangarooTwelve — это более производительная версия Keccak с уменьшенным количеством раундов (с 24 до 12 раундов), которая утверждает, что имеет 128 бит безопасности. [49] достигает 0,55 цикла на байт при этом производительность процессора Skylake . [50] Этот алгоритм представляет собой проект IETF RFC . [51]

MarsupilamiFourteen, небольшая вариация KangarooTwelve, использует 14 раундов перестановки Keccak и требует 256 бит безопасности. Обратите внимание, что 256-битная безопасность на практике не более полезна, чем 128-битная, но может потребоваться некоторыми стандартами. [49] 128 бит уже достаточно для защиты от атак методом перебора на современное оборудование, поэтому наличие 256-битной безопасности не добавляет практической ценности, если только пользователь не обеспокоен значительным улучшением скорости классических компьютеров. О сопротивлении квантовым компьютерам см. ниже.

KangarooTwelve и MarsupilamiFourteen — это функции расширяемого вывода, аналогичные SHAKE, поэтому они генерируют тесно связанные выходные данные для общего сообщения с разной длиной вывода (более длинный вывод является расширением более короткого вывода). Такое свойство не проявляется в хэш-функциях, таких как SHA-3 или ParallelHash (за исключением вариантов XOF). [6]

Строительство Фарфалле

[ редактировать ]

В 2016 году команда Keccak выпустила другую конструкцию под названием конструкция Farfalle , и Kravatte, экземпляр Farfalle, использующий перестановку Keccak-p, [52] а также два аутентифицированных алгоритма шифрования Kravette-SANE и Kravette-SANSE. [53]

Хеширование дерева сакуры

[ редактировать ]

RawSHAKE является основой для кода Sakura для хеширования деревьев, который еще не стандартизирован. Сакура использует суффикс 1111 для отдельных узлов, эквивалентный SHAKE, и другие генерируемые суффиксы в зависимости от формы дерева. [45] : 16 

Защита от квантовых атак

[ редактировать ]

Существует общий результат ( алгоритм Гровера ), что квантовые компьютеры могут выполнять атаку структурированного прообраза в , тогда как для классической атаки методом перебора требуется 2 д . Структурированная атака на прообраз подразумевает атаку второго прообраза. [28] и, таким образом, столкновение . Квантовый компьютер также может выполнить атаку на день рождения , тем самым преодолев сопротивление столкновению, в [54] (хотя это спорно). [55] Отмечая, что максимальная сила может быть , это дает следующий верхний [56] границы квантовой безопасности SHA-3:

Пример Сила безопасности в битах сопротивления
Столкновение
(Брассар и др.)
Столкновение
(Бернштейн)
Прообраз 2-й прообраз
SHA3-224( М ) 74 2 3 112 112 112
SHA3-256( М ) 85 1 3 128 128 128
SHA3-384( М ) 128 192 192 192
SHA3-512( М ) 170 2 3 256 256 256
ВСтряска128( М , д ) мин( д /3,128) мин( д /2,128) ≥мин( д /2,128) мин( д /2,128)
ВСтряска256( М , д ) мин( д /3,256) мин( д /2,256) ≥мин( д /2,256) мин( д /2,256)

Было показано, что конструкция Меркла-Дамгорда , используемая SHA-2, разрушается и, как следствие, устойчива к квантовым столкновениям. [57] но для губчатой ​​конструкции, используемой SHA-3, авторы приводят доказательства только для случая, когда блочная функция f не является эффективно обратимой; Однако Keccak-f[1600] эффективно обратим, и поэтому их доказательство неприменимо. [58] [ оригинальное исследование ]

Примеры вариантов SHA-3

[ редактировать ]

Следующие значения хеш-функции взяты из NIST.gov: [59]

SHA3-224("")
6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7
SHA3-256("")
a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a
SHA3-384("")
0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004
SHA3-512("")
a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26
SHAKE128("", 256)
7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26
SHAKE256("", 512)
46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be

Изменение одного бита приводит к изменению каждого бита выходных данных с вероятностью 50%, демонстрируя лавинный эффект :

SHAKE128("The quick brown fox jumps over the lazy dog", 256)
f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e
SHAKE128("The quick brown fox jumps over the lazy dof", 256)
853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c

Сравнение функций SHA

[ редактировать ]

В таблице ниже внутреннее состояние означает количество битов, которые передаются в следующий блок.

Сравнение функций SHA
Алгоритм и вариант Выходной размер
(биты)
Внутренний
размер штата
(биты)
Размер блока
(биты)
Раунды Операции Защита от столкновений
(биты)
Защита от атак расширения длины
(биты)
Производительность на Skylake (медиана cpb ) [60] Впервые опубликовано
Длинные сообщения 8 байт
MD5 (для справки) 128 128
(4 × 32)
512 4
(16 операций в каждом раунде)
И, Xor, Or, Rot, Add (мод 2 32 ) ≤ 18
(обнаружены столкновения) [61]
0 4.99 55.00 1992
ША-0 160 160
(5 × 32)
512 80 И, Xor, Or, Rot, Add (мод 2 32 ) < 34
(обнаружены столкновения)
0 ≈ ША-1 ≈ ША-1 1993
ША-1 < 63
(обнаружены столкновения) [62]
3.47 52.00 1995
ША-2 ША-224
ША-256
224
256
256
(8 × 32)
512 64 И, Ксор, Или,
Рот, Шр, Адд (мод 2 32 )
112
128
32
0
7.62
7.63
84.50
85.25
2004
2001
ША-384 384 512
(8 × 64)
1024 80 И, Ксор, Или,
Рот, Шр, Адд (мод 2 64 )
192 128 5.12 135.75 2001
ША-512 512 256 0 [63] 5.06 135.50 2001
ША-512/224
ША-512/256
224
256
112
128
288
256
≈ ША-384 ≈ ША-384 2012
ША-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
24 [64] И, Ксор, Гниль, Не 112
128
192
256
448
512
768
1024
8.12
8.59
11.06
15.88
154.25
155.50
164.00
164.00
2015
SHAKE128
SHAKE256
д (произвольно)
д (произвольно)
1344
1088
мин( д /2, 128)
мин( д /2, 256)
256
512
7.08
8.59
155.25
155.50

Оптимизированная реализация SHA3-256 с использованием AVX-512VL (т. е. из OpenSSL , работающего на процессорах Skylake-X ) обеспечивает около 6,4 циклов на байт для больших сообщений. [65] и около 7,8 циклов на байт при использовании AVX2 на процессорах Skylake . [66] Производительность на других процессорах x86, Power и ARM в зависимости от используемых инструкций и конкретной модели процессора варьируется от 8 до 15 циклов на байт. [67] [68] [69] с некоторыми старыми процессорами x86 до 25–40 циклов на байт. [70]

Реализации

[ редактировать ]

Ниже приведен список библиотек шифрования, поддерживающих SHA-3:

Аппаратное ускорение

[ редактировать ]

Apple A13 Ядра шестиядерного процессора SoC ARMv8 поддерживаются [71] для ускорения SHA-3 (и SHA-512) с использованием специализированных инструкций (EOR3, RAX1, XAR, BCAX) из набора криптографических расширений ARMv8.2-SHA. [72]

Некоторые библиотеки программного обеспечения используют средства векторизации ЦП для ускорения использования SHA-3. Например, Crypto++ может использовать SSE2 на x86 для ускорения SHA3. [73] и OpenSSL также может использовать MMX , AVX-512 или AVX-512VL во многих системах x86. [74] Кроме того, процессоры POWER8 реализуют 2x64-битный векторный поворот, определенный в PowerISA 2.07, что может ускорить реализацию SHA-3. [75] Большинство реализаций для ARM не используют Neon векторные инструкции , поскольку скалярный код работает быстрее. Однако реализации ARM можно ускорить с помощью SVE векторных инструкций и SVE2; они доступны Fujitsu A64FX . , например, в процессоре [76]

IBM z/Architecture поддерживает SHA-3 с 2017 года как часть расширения Message-Security-Assist Extension 6. [77] Процессоры поддерживают полную реализацию всех алгоритмов SHA-3 и SHAKE с помощью инструкций KIMD и KLMD с использованием аппаратного вспомогательного механизма, встроенного в каждое ядро.

Использование в протоколах

[ редактировать ]

См. также

[ редактировать ]
  • Ethash — еще один хеш на основе Keccak.
  1. ^ Перейти обратно: а б с Бертони, Гвидо; Дэмен, Джоан ; Питерс, Майкл; ван Аш, Жиль (29 мая 2012 г.). «Обзор реализации Keccak» (PDF) . п. 25 . Проверено 27 марта 2023 г.
  2. ^ Моравецкий, Павел; Пепшик, Йозеф; Сребрный, Мариан (2013). «Ротационный криптоанализ Кечака с уменьшенным раундом» (PDF) . В Мориай, С. (ред.). Быстрое программное шифрование . Конспекты лекций по быстрому программному шифрованию по информатике. Том. 8424. стр. 241–262. дои : 10.1007/978-3-662-43933-3_13 . ISBN  978-3-662-43932-6 . Архивировано (PDF) из оригинала 8 января 2013 г. Проверено 8 февраля 2019 г.
  3. ^ Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; ван Аш, Джайлз (14 января 2011 г.). «Представление Keccak SHA-3» (PDF) . keccak.team . Архивировано (PDF) из оригинала 19 августа 2011 г. Проверено 27 марта 2023 г.
  4. ^ Отдел компьютерной безопасности, Лаборатория информационных технологий (4 января 2017 г.). «Хеш-функции | CSRC | CSRC» . ЦКРС | НИСТ . Проверено 19 апреля 2024 г.
  5. ^ Перейти обратно: а б «Хеш-функции» . НИСТ . 22 июня 2020 г. Проверено 17 февраля 2021 г.
  6. ^ Перейти обратно: а б с д и ж г час я Лаборатория информационных технологий (август 2015 г.). Стандарт SHA-3: хеширование на основе перестановок и функции расширяемого вывода (PDF) . Национальный институт стандартов и технологий . дои : 10.6028/NIST.FIPS.202 . S2CID   64734386 . Публикация Федерального стандарта обработки информации 202 . Проверено 29 февраля 2020 г.
  7. ^ Дворкин, Моррис Дж. (4 августа 2015 г.). «Стандарт SHA-3: хеширование на основе перестановок и функции расширяемого вывода» . Федеральные стандарты обработки информации (НИСТ ФИПС).
  8. ^ Перейти обратно: а б «NIST выбирает победителя конкурса алгоритмов безопасного хеширования (SHA-3)» . НИСТ . 2 октября 2012 года . Проверено 2 октября 2012 г.
  9. ^ Круз, Хосе Р.К. (7 мая 2013 г.). «Кеккак: новый стандарт шифрования SHA-3» . Доктор Доббс .
  10. ^ Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль. «Сводка технических характеристик Keccak» . Проверено 27 марта 2023 г.
  11. ^ Чанг, Шу-жен; Перлнер, Рэй; Берр, Уильям Э.; Сонмез Туран, Мельтем; Келси, Джон М.; Пол, Сурадьюти; Бэшем, Лоуренс Э. (ноябрь 2012 г.). Отчет третьего раунда конкурса алгоритмов криптографического хеширования SHA-3 (PDF) . doi : 10.6028/NIST.IR.7896 . Проверено 29 февраля 2020 г. Разделы 5.1.2.1 (упоминание «режим дерева»), 6.2 («другие функции», упоминание аутентифицированного шифрования) и 7 (упоминание «дополнительных возможностей» могут быть стандартизированы в будущем).
  12. ^ Перейти обратно: а б Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль; Ван Кир, Ронни (13 марта 2014 г.). «Представление CAESAR: Ketje v1» (PDF) . Проверено 29 февраля 2020 г.
  13. ^ Перейти обратно: а б Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль; Ван Кир, Ронни (13 марта 2014 г.). «Представление CAESAR: Keyak v1» (PDF) . Проверено 29 февраля 2020 г.
  14. ^ Перейти обратно: а б Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; ван Аш, Джайлз. «Губка и дуплексные конструкции» . Проверено 27 марта 2023 г.
  15. ^ «Объявление о выдвижении кандидатов на алгоритмы для нового семейства алгоритмов криптографического хеширования (SHA-3) [Федеральный реестр США, том 72, № 212)]» (PDF) . 2 ноября 2007 г. Архивировано (PDF) из оригинала 31 марта 2011 г. . Проверено 18 июля 2017 г.
  16. ^ Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль. «Дорога из Панамы в Кечак через РадиоГатун» (PDF) . Проверено 27 марта 2023 г.
  17. ^ KeccakReferenceAndOptimized-3.2.zip mainReference.c «Функция губки Keccak, разработанная Гвидо Бертони, Джоан Даемен, Микаэлем Петерсом и Жилем Ван Ашем. Для получения дополнительной информации, отзывов или вопросов посетите наш веб-сайт: http://keccak. noekeon.org/Реализация [ постоянная мертвая ссылка ] разработчиками, именуемыми здесь «исполнителями». Насколько это возможно по закону, разработчик отказался от всех авторских и смежных прав на исходный код в этом файле. https://creativecommons.org/publicdomain/zero/1.0/ "
  18. ^ Стивенс, Марк; Бурштейн, Эли; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. «Первое столкновение для полного SHA-1» (PDF) . Проверено 23 февраля 2017 г.
  19. ^ Леран, Гаэтан; Пейрин, Томас. «SHA-1 — это руины» . Проверено 8 января 2020 г.
  20. ^ «Отдел компьютерной безопасности NIST – Конкурс криптографических алгоритмов хеширования SHA-3, ноябрь 2007 г. – октябрь 2012 г.» . 4 января 2017 г.
  21. ^ «Изменение параметров Кечака для второго раунда» . Команда Кечак . 22 сентября 2009 года. Архивировано из оригинала 13 ноября 2017 года . Проверено 29 февраля 2020 г.
  22. ^ «Упрощение правила заполнения Кечака для третьего раунда» . Команда Кечак . 17 января 2011 года . Проверено 27 марта 2023 г.
  23. ^ «Стандартизация SHA-3» . НИСТ . Проверено 16 апреля 2015 г.
  24. ^ Национальный институт стандартов и технологий (5 августа 2015 г.). «Федеральные стандарты обработки информации: хеш-функции на основе перестановок, функции расширяемого вывода и т. д.» . Проверено 5 августа 2015 г.
  25. ^ «Объявление об утверждении Федерального стандарта обработки информации (FIPS) 202, Стандарт SHA-3: хеширование на основе перестановок и функции расширяемого вывода, а также пересмотр пункта о применимости FIPS 180-4, Стандарт безопасного хеширования» . 5 августа 2015 г.
  26. ^ Келси, Джон. «SHA3, Где мы были, Куда мы идем» (PDF) . Конференция ЮАР 2013.
  27. ^ Келси, Джон. «SHA3, прошлое, настоящее и будущее» . ЧЭС 2013.
  28. ^ Перейти обратно: а б «Аннотация» (PDF) . cr.yp.to .
  29. ^ «Список рассылки хэш-форума NIST» . 4 января 2017 г.
  30. ^ «Представление Keccak SHA-3» (PDF) . 14 января 2011 года . Проверено 27 марта 2023 г.
  31. ^ «О 128-битной безопасности» . 2 октября 2013 года . Проверено 27 марта 2023 г.
  32. ^ «Конкретное предложение» . 2 октября 2013 года . Проверено 27 марта 2023 г.
  33. ^ Перейти обратно: а б «Шнайер по безопасности: будет ли Кекчак = SHA-3?» .
  34. ^ «LShift: Почему я поддерживаю правительство США, ослабляющее стандарт криптографии» .
  35. ^ «Да, это Кечак!» . 4 октября 2013 года . Проверено 27 марта 2023 г.
  36. ^ «Движение вперед с SHA-3» (PDF) .
  37. ^ Отдел компьютерной безопасности (CSD) НИСТ. «Стандарт SHA-3: хэш на основе перестановок и функции расширяемого вывода» (PDF) . НИСТ.
  38. ^ «около 41 цикла на байт [...] представляет собой ускорение на 40% по сравнению с реализацией, использующей только 32-битные инструкции». По формуле мы получаем
  39. ^ Бернштейн, Дэниел Дж. (4 января 2012 г.). «Ошибки оптимизации в программном обеспечении SHA-3» (PDF) . cr.yp.to . Проверено 29 февраля 2020 г.
  40. ^ Перейти обратно: а б «SHA-3 медленный?» . 12 июня 2017 г. Проверено 27 марта 2023 г.
  41. ^ Го, Сюй; Хуан, Синан; Нажандали, Лейла; Шаумонт, Патрик (август 2010 г.), «Справедливая и всесторонняя оценка производительности 14 реализаций ASIC SHA-3 второго раунда» (PDF) , 2-я конференция кандидатов SHA-3 NIST : 12 , получено 18 февраля 2011 г. Кекчак уступает только Луффе, которые не прошли в финальный раунд.
  42. ^ Корпорация ARM, Справочное руководство по архитектуре ARM ARMv8, для профиля архитектуры ARMv8-A, документ ARM DDI 0487C.a (ID121917), https://www.arm.com
  43. ^ http://publibfp.dhe.ibm.com/epubs/pdf/dz9zr011.pdf с. 672
  44. ^ https://ieeexplore.ieee.org/document/7918507.
  45. ^ Перейти обратно: а б «Сакура: гибкое кодирование для хеширования деревьев» (PDF) . Команда Кечак . 2014 . Проверено 29 февраля 2020 г.
  46. ^ Производные функции SHA-3: cSHAKE, KMAC, TupleHash и ParallelHash. Общественное достояние В данную статью включен текст из этого источника, находящегося в свободном доступе .
  47. ^ «Показатели производительности программного обеспечения» .
  48. ^ Перейти обратно: а б «Команда Кечак: КенгуруДвенадцать» . Команда Кечак.
  49. ^ Перейти обратно: а б «KangarooTwelve: быстрое хеширование на основе Keccak-p» (PDF) . Международная ассоциация криптологических исследований . 2016.
  50. ^ «Двенадцать слайдов Кенгуру, представленные на ACNS 2018» (PDF) . Команда Кечак.
  51. ^ «draft-irtf-cfrg-kangarootwelve-00 – KangarooTwelve» . Ietf Datatracker . IETF . Проверено 17 января 2020 г.
  52. ^ Бертони, Гвидо; Дэмен, Джоан; Хофферт, Сет; Питерс, Майкл; Ван Аш, Жиль; Ван Кир, Ронни (29 декабря 2016 г.). «Фарфалле: параллельная криптография на основе перестановок» . Архив электронной печати по криптологии .
  53. ^ Гвидо Бертони; Джоан Дэмен; Сет Хофферт; Майкл Питерс; Жиль Ван Аш; Ронни Ван Кир (12 октября 2018 г.). «Аутентифицированные схемы шифрования Kravatte-SANE и Kravatte-SANSE» . Архив электронной печати по криптологии .
  54. ^ Брассар, Жиль; Хойер, Питер; Тапп, Ален (1998). «Квантовый криптоанализ хеш-функций и функций без когтей». Абстрактный . Конспекты лекций по информатике. Том. 1380. стр. 163–169. arXiv : Quant-ph/9705002 . дои : 10.1007/BFb0054319 . ISBN  978-3-540-64275-6 . S2CID   118940551 .
  55. ^ «Анализ затрат» (PDF) . cr.yp.to .
  56. ^ «Проблема столкновения» (PDF) . scottaaronson.com .
  57. ^ «Бумага» (PDF) . eprint.iacr.org . 2016.
  58. ^ «Аннотация» (PDF) . eprint.iacr.org . 2017.
  59. ^ «NIST.gov – Отдел компьютерной безопасности – Ресурсный центр компьютерной безопасности» . 29 декабря 2016 г.
  60. ^ «Таблица измерений» . скамейка.cr.yp.to .
  61. ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая атака столкновений на MD5 (PDF) . Архив криптологии ePrint (Технический отчет). МАКР .
  62. ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Исследования .
  63. ^ Без усечения известно полное внутреннее состояние хеш-функции, независимо от устойчивости к коллизиям. Если выходные данные усекаются, удаленную часть состояния необходимо найти и найти, прежде чем можно будет возобновить хеш-функцию, что позволит продолжить атаку.
  64. ^ «Семейство функций губки Кечака» . Проверено 27 января 2016 г.
  65. ^ «openssl/openssl – kecak1600-avx512vl.pl» . Гитхаб . Проверено 25 июня 2020 г.
  66. ^ «openssl/openssl – keccak1600-avx2.pl» . Гитхаб . Ноябрь 2021 г.
  67. ^ «openssl/openssl – keccak1600-x86_64.pl» . Гитхаб . Проверено 25 июня 2020 г.
  68. ^ «openssl/openssl – keccak1600-armv8.pl» . Гитхаб . Ноябрь 2021 г.
  69. ^ «openssl/openssl – keccak1600-ppc64.pl» . Гитхаб . Проверено 25 июня 2020 г.
  70. ^ «openssl/openssl – kccak1600-mmx.pl» . Гитхаб . Проверено 25 июня 2020 г.
  71. ^ «llvm/llvm-проект – AArch64.td» . Гитхаб . Проверено 24 июня 2020 г.
  72. ^ «ARMv8 – ARM – WikiChip» . ru.wikichip.org . Проверено 24 июня 2020 г.
  73. ^ «weidai11/cryptopp» . Гитхаб . Проверено 25 июня 2020 г.
  74. ^ «опенссл/опенссл» . Гитхаб . Проверено 25 июня 2020 г.
  75. ^ «опенссл/опенссл» . Гитхаб . Ноябрь 2021 г.
  76. ^ «apple/llvm-project – lib/Target/AArch64/AArch64SVEInstrInfo.td» . Гитхаб . Проверено 25 июня 2020 г.
  77. ^ Принципы работы IBM z/Architecture, номер публикации SA22-7832. См. инструкции KIMD и KLMD в главе 7.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6682cb6e8b85b632968c397f3e478536__1722920340
URL1:https://arc.ask3.ru/arc/aa/66/36/6682cb6e8b85b632968c397f3e478536.html
Заголовок, (Title) документа по адресу, URL1:
SHA-3 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)