SHA-3

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Keccak»)
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 3 января 2016 года; проверки требует61 правка.
Перейти к навигацииПерейти к поиску
SHA-3, Keccak
РазработчикиГвидо Бертони,Йоан Даймен, Микаел Питерс, Жиль Ван Аше
Создан2008
Опубликован2008
ПредшественникSHA-2
Размер хеша224, 256, 384, 512 (переменный, 0<d≤264-1)
Число раундов24 (по умолчанию)
Типхеш-функция

SHA-3 (Keccak — произносится как «кечак») — алгоритмхеширования переменной разрядности, разработанный группой авторов во главе сЙоаном Дайменом, соавторомRijndael, автором шифровMMB,SHARK,Noekeon,SQUARE иBaseKing. 2 октября2012 года Keccak стал победителемконкурса криптографических алгоритмов, проводимогоНациональным институтом стандартов и технологий США[1]. 5 августа2015 года алгоритм утверждён и опубликован в качестве стандартаFIPS 202[2][3]. В программной реализации авторы заявляют о 12,5 циклах на байт при выполнении наПК с процессоромIntel Core 2. Однако в аппаратных реализациях Keccak оказался намного быстрее, чем все другие финалисты.[4]

Конструкцияфункции губки, использованная в хеш-функции.Pi — входные блоки,Zj — выход алгоритма. Размерc («capacity») неиспользуемого для вывода набора битов должен быть значительным для достижения устойчивости к атакам

Алгоритм SHA-3 построен по принципукриптографической губки (данная структура криптографических алгоритмов была предложена авторами алгоритма Keccak ранее)[5].

Содержание

История

[править |править код]

В 2004—2005 годах несколько алгоритмов хеширования были атакованы, в том числе были опубликованы серьезные атаки против алгоритма SHA-1, утвержденногоНациональным институтом стандартов и технологий (NIST). В ответ NIST провел открытые семинары и 2 ноября2007 года анонсировал конкурс на разработку нового алгоритма хеширования. 2 октября2012 года победителем конкурса стал алгоритм Keccak и был стандартизован как новый алгоритм SHA-3[6]. 5 августа2015 года алгоритм утвержден и опубликован в качестве стандартаFIPS 202[2][3].

Алгоритм был разработанГвидо Бертони[англ.],Йоаном Дайменом,Жилем Ван Аше[англ.] изSTMicroelectronics иМикаэлем Питерсом[англ.] изNXP[7].

Алгоритм основан на более ранних хеш-функцияхPanama и RadioGatún[8]. Panama был разработан Дайменом и Крейгом Клэппом в 1998 году, RadioGatún был реализован на основе Panama Дайменом, Питерсом и Ван Аше в 2006 году[8].

В ходе конкурса конкурсантам разрешалось вносить изменения в свой алгоритм для исправления обнаруживающихся проблем. Изменения, внесенные в алгоритм Keccak[9][10]:

  • Количество раундов было увеличено с 12 +l{\displaystyle l} до 12 + 2l{\displaystyle l}
  • Padding был изменён со сложной формы на более простую, описанную ниже
  • Скорость (rate)r была увеличена до предела безопасности (ранее округлялась вниз до ближайшей степени 2)

Алгоритм

[править |править код]

Хеш-функции семействаSHA-3 построены на основе конструкциикриптографической губки[5], в которой данные сначала «впитываются» в губку, при котором исходное сообщениеM{\displaystyle M} подвергается многораундовым перестановкамf{\displaystyle f}, затем результатZ{\displaystyle Z} «отжимается» из губки. На этапе «впитывания» блоки сообщения суммируются по модулю 2 с подмножеством состояния, после чего всё состояние преобразуется с помощью функции перестановкиf{\displaystyle f}. На этапе «отжимания» выходные блоки считываются из одного и того же подмножества состояния, изменённого функцией перестановокf{\displaystyle f}. Размер части состояния, который записывается и считывается, называется «скоростью» (англ. rate) и обозначаетсяr{\displaystyle r}, а размер части, которая нетронута вводом / выводом, называется «ёмкостью» (англ. capacity) и обозначаетсяc{\displaystyle c}.

Алгоритм получения значения хеш-функции можно разделить на несколько этапов[11]:

Благодаря тому, что состояние содержитc{\displaystyle c} дополнительных бит, алгоритм устойчив катаке удлинением сообщения, к которой восприимчивы алгоритмыSHA-1 иSHA-2.

В SHA-3 состояниеS{\displaystyle S} — это массив 5 × 5 слов длинойw{\displaystyle w} = 64 бита, всего 5 × 5 × 64 = 1600 бит. Также в Keccak могут использоваться длиныw{\displaystyle w}, равные меньшим степеням 2 (отw{\displaystyle w} = 1 доw{\displaystyle w} = 32).

Дополнение

[править |править код]

Для того, чтобы исходное сообщениеM можно было разделить на блоки длиныr, необходимодополнение. В SHA-3 используется паттерн pad10*1[11]: к сообщению добавляется 1, после него — 0 или больше нулевых битов (доr-1), в конце — 1.

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

Два единичных бита добавляются и в том случае, если длина исходного сообщенияM делится наr[11]. В этом случае к сообщению добавляется блок, начинающийся и оканчивающийся единицами, между которымиr-2 нулевых битов. Это необходимо для того, чтобы для сообщения, оканчивающегося последовательностью битов как в функции дополнения, и для сообщения без этих битов значения хеш-функции были различны.

Первый единичный бит необходим для того, чтобы результаты хеш-функции от сообщений, различающихся несколькими нулевыми битами в конце, были различны[11].

Функция перестановок

[править |править код]

Функция перестановок, используемая в SHA-3, включает в себяисключающее «ИЛИ» (XOR),побитовое «И» (AND) ипобитовое отрицание (NOT). Функция определена для строк длины-степени 2w=2l{\displaystyle w=2^{l}}. В основной реализации SHA-3w=64{\displaystyle w=64} (l=6{\displaystyle l=6}).

СостояниеS{\displaystyle S} можно представить в виде трёхмерного массиваA{\displaystyle A} размером 5 × 5 ×w{\displaystyle w}. Тогда элемент массиваA[i][j][k]{\displaystyle A[i][j][k]} - это(5i+j)×w+k{\displaystyle (5i+j)\times w+k} бит строки состоянияS{\displaystyle S}.

Функция содержит несколько шагов:θ{\displaystyle \theta },ρ{\displaystyle \rho },π{\displaystyle \pi },χ{\displaystyle \chi },ι{\displaystyle \iota }, которые выполняются несколько раундов[11]. На каждом шаге обозначим входной массив A, выходной массив A'.

Шагθ{\displaystyle \theta }

[править |править код]

Для всехi{\displaystyle i} иk{\displaystyle k}, таких, что0i<5{\displaystyle 0\leqslant i<5},0k<w{\displaystyle 0\leqslant k<w}, положим

C(i,k)=A[i,0,k]A[i,1,k]A[i,2,k]A[i,3,k]A[i,4,k]{\displaystyle C(i,k)=A[i,0,k]\oplus A[i,1,k]\oplus A[i,2,k]\oplus A[i,3,k]\oplus A[i,4,k]}

D(i,k)=C[(i1)mod5,k]C[(i+1)mod5,(k1)modw]{\displaystyle D(i,k)=C[(i-1){\bmod {5}},k]\oplus C[(i+1){\bmod {5}},(k-1){\bmod {w}}]}

Для всех(i,j,k){\displaystyle (i,j,k)}, таких, что0i<5{\displaystyle 0\leqslant i<5},0j<5{\displaystyle 0\leqslant j<5},0k<w{\displaystyle 0\leqslant k<w},

A[i,j,k]=A[i,j,k]D[i,k]{\displaystyle A'[i,j,k]=A[i,j,k]\oplus D[i,k]}

Шагρ{\displaystyle \rho }

[править |править код]

Для всехk{\displaystyle k}, таких, что0k<w{\displaystyle 0\leqslant k<w},A[0,0,k]=A[0,0,k]{\displaystyle A'[0,0,k]=A[0,0,k]}

Пусть в начале(i,j)=(1,0){\displaystyle (i,j)=(1,0)}. Дляt{\displaystyle t} от 0 до 23:

  1. Для всехk{\displaystyle k}, таких, что0k<w{\displaystyle 0\leqslant k<w},A[i,j,k]=A[i,j,(k(t+1)(t+2)/2)modw]{\displaystyle A'[i,j,k]=A[i,j,(k-(t+1)(t+2)/2){\bmod {w}}]}
  2. (i,j)=(j,(2i+3j)mod5){\displaystyle (i,j)=(j,(2i+3j){\bmod {5}})}

Шагπ{\displaystyle \pi }

[править |править код]

Для всех(i,j,k){\displaystyle (i,j,k)}, таких, что0i<5{\displaystyle 0\leqslant i<5},0j<5{\displaystyle 0\leqslant j<5},0k<w{\displaystyle 0\leqslant k<w}

A[i,j,k]=A[(i+3j)mod5,i,k]{\displaystyle A'[i,j,k]=A[(i+3j){\bmod {5}},i,k]}

Шагχ{\displaystyle \chi }

[править |править код]

Для всех(i,j,k){\displaystyle (i,j,k)}, таких, что0i<5{\displaystyle 0\leqslant i<5},0j<5{\displaystyle 0\leqslant j<5},

A[i,j,k]=A[i,j,k]((A[(i+1)mod5,j,k]1)A[(i+2)mod5,j,k]){\displaystyle A'[i,j,k]=A[i,j,k]\oplus ((A[(i+1){\bmod {5}},j,k]\oplus 1)\cdot A[(i+2){\bmod {5}},j,k])}

Шагι{\displaystyle \iota }

[править |править код]

Введем дополнительную функциюrc(t){\displaystyle rc(t)}, где вход — целое числоt{\displaystyle t}, а на выходе — бит.

Алгоритмrc(t){\displaystyle rc(t)}

[править |править код]
  1. Еслиtmod255=0{\displaystyle t{\bmod {2}}55=0}, то возвращается 1
  2. ПустьR=[10000000]{\displaystyle R=[10000000]}
  3. Для i от 1 до t mod 255:
    1. R = 0 || R
    2. R[0]=R[0]R[8]{\displaystyle R[0]=R[0]\oplus R[8]}
    3. R[4]=R[4]R[8]{\displaystyle R[4]=R[4]\oplus R[8]}
    4. R[5]=R[5]R[8]{\displaystyle R[5]=R[5]\oplus R[8]}
    5. R[6]=R[6]R[8]{\displaystyle R[6]=R[6]\oplus R[8]}
    6. R=Trunc8[R]{\displaystyle R=Trunc_{8}[R]}
  4. ВозвращаетсяR[0]{\displaystyle R[0]}.{\displaystyle .}

Алгоритмι(A,ir){\displaystyle \iota (A,i_{r})}

[править |править код]

ir{\displaystyle i_{r}} — номер раунда.

  1. Для всех(i,j,k){\displaystyle (i,j,k)}, таких, что0i<5{\displaystyle 0\leqslant i<5},0j<5{\displaystyle 0\leqslant j<5},0k<w{\displaystyle 0\leqslant k<w}A[i,j,k]=A[i,j,k]{\displaystyle A'[i,j,k]=A[i,j,k]}
  2. ПустьRC{\displaystyle RC} — массив длиныw{\displaystyle w}, заполненный нулями.
  3. Дляi{\displaystyle i} от 0 доl{\displaystyle l}:RC[2i1]=rc(i+7ir){\displaystyle RC[2^{i}-1]=rc(i+7i_{r})}
  4. Для всехk{\displaystyle k}, таких, что0k<w{\displaystyle 0\leqslant k<w},A[0,0,k]=A[0,0,k]RC[k]{\displaystyle A'[0,0,k]=A'[0,0,k]\oplus RC[k]}

Алгоритм перестановок

[править |править код]
  1. Перевод строкиS{\displaystyle S} в массивA{\displaystyle A}
  2. Дляir{\displaystyle i_{r}} от12+2lnr{\displaystyle 12+2l-n_{r}} до12+2l1{\displaystyle 12+2l-1}A=ι(χ(π(ρ(θ(A)))),ir){\displaystyle A'=\iota (\chi (\pi (\rho (\theta (A)))),i_{r})}
  3. Перевод массиваA{\displaystyle A'} в строкуS{\displaystyle S'} длиныb{\displaystyle b}

Хеширование сообщений произвольной длины

[править |править код]

Основой функции сжатия алгоритма является функция f, выполняющая перемешивание внутреннего состояния алгоритма. Состояние (обозначим его A) представляется в видемассива 5×5, элементами которого являются 64-битные слова, инициализированные нулевыми битами (то есть, размер состояния составляет 1600 битов). Функция f выполняет 24 раунда, в каждом из которых производятся следующие действия:

 C[x] = A[x, 0]{\displaystyle \oplus } A[x, 1]{\displaystyle \oplus } A[x, 2]{\displaystyle \oplus } A[x, 3]{\displaystyle \oplus } A[x, 4], x = 0…4; D[x] = C[x — 1]{\displaystyle \oplus } (С[x + 1] >>> 1), x = 0…4; A[x, y] = A[x, y]{\displaystyle \oplus } D[x], x = 0…4, y = 0…4; B[y, 2x + 3y] = A[x, y] >>> r[x, y], x = 0…4, y = 0…4; A[x, y] = B[x, y]{\displaystyle \oplus } (~B[x + 1, y] & B[x + 2, y]), x = 0…4, y = 0…4,

Где:

B — временный массив, аналогичный по структуре массиву состояния;
C иD — временные массивы, содержащие по пять 64-битных слов;
r — массив, определяющий величину циклического сдвига для каждого слова состояния;
~x —поразрядное дополнение кx;
и операции с индексами массива выполняются по модулю 5.

Кроме приведенных выше операций, в каждом раунде также выполняется наложение операцией XOR раундовой константы на слово A[0, 0].

Перед выполнением функции сжимания накладывается операция XOR фрагментов исходного сообщения с фрагментами исходного состояния. Результат обрабатывается функциейf. Данное наложение в совокупности с функцией сжимания, выполняемые для каждого блока входных данных, представляют собой «впитывающую» (absorbing) фазу криптографической губки.

Стоит отметить, что функцияf использует только операции, стойкие к атакам, использующим утечки данных по побочным каналам.

Результирующее хеш-значение вычисляется в процессе выполнения «выжимающей» (squeezing) фазы криптографической губки, основу которой также составляет описанная выше функцияf. Возможные размеры хеш-значений — 224, 256, 384 и 512 бит.

Настройки

[править |править код]

Оригинальный алгоритм Keccak имеет множество настраиваемых параметров[11] с целью обеспечения оптимального соотношениякриптостойкости и быстродействия для определённого применения алгоритма на определённой платформе. Настраиваемыми величинами являются: размер блока данных, размер состояния алгоритма, количество раундов в функцииf() и другие.

На протяжения конкурса хешированияНационального института стандартов и технологий участники имели право настраивать свои алгоритмы для решения возникших проблем. Так, были внесены некоторые изменения в Keccak: количество раундов было увеличено с 18 до 24 с целью увеличения запаса безопасности.

Авторы Keccak учредили ряд призов за достижения вкриптоанализе данного алгоритма.

Версия алгоритма, принятая в качестве окончательного стандарта SHA-3, имеет несколько незначительных отличий от оригинального предложения Keccak на конкурс. В частности, были ограничены некоторые параметры (отброшены медленные режимы c=768 и c=1024), в том числе для увеличения производительности[12][13][14][15]. Также в стандарте были введены «функции с удлиняемым результатом» (XOF, Extendable Output Functions) SHAKE128 и SHAKE256, для чего хешируемое сообщение стало необходимо дополнять «суффиксом» из 2 или 4 бит, в зависимости от типа функции.

ФункцияФормула
SHA3-224(M)Keccak[448](M||01, 224)
SHA3-256(M)Keccak[512](M||01, 256)
SHA3-384(M)Keccak[768](M||01, 384)
SHA3-512(M)Keccak[1024](M||01, 512)
SHAKE128(M,d)Keccak[256](M||1111,d)
SHAKE256(M,d)Keccak[512](M||1111,d)

Дополнительные функции

[править |править код]

В декабре 2016 годаНациональный институт стандартов и технологий США опубликовал новый документ, NIST SP.800-185[16], описывающий дополнительные функции на основе SHA-3:

ФункцияОписание
cSHAKE128(X,L,N,S)Параметризованная версия SHAKE
cSHAKE256(X,L,N,S)
KMAC128(K,X,L,S)Имитовставка на основе Keccak
KMAC256(K,X,L,S)
KMACXOF128(K,X,L,S)
KMACXOF256(K,X,L,S)
TupleHash128(X,L,S)Хешированиекортежа строк
TupleHash256(X,L,S)
TupleHashXOF128(X,L,S)
TupleHashXOF256(X,L,S)
ParallelHash128(X,B,L,S)Параллелизуемая хеш-функция на основе Keccak
ParallelHash256(X,B,L,S)
ParallelHashXOF128(X,B,L,S)
ParallelHashXOF256(X,B,L,S)

Тестовые векторы

[править |править код]

Значения разных вариантов хеша от пустой строки.

SHA3-224("")6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7SHA3-256("")a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434aSHA3-384("")0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004SHA3-512("")a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26SHAKE128("", 256)7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26SHAKE256("", 512)46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be

Малое изменение сообщения приводит к значительным изменениям в значении хеш-функции благодарялавинному эффекту, как показано в следующих примерах:

SHA3-224("The quick brown fox jumps over the lazy dog")d15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795SHA3-224("The quick brown fox jumps over the lazy dog.")2d0708903833afabdd232a20201176e8b58c5be8a6fe74265ac54db0
SHA3-256("The quick brown fox jumps over the lazy dog")69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04SHA3-256("The quick brown fox jumps over the lazy dog.")a80f839cd4f83f6c3dafc87feae470045e4eb0d366397d5c6ce34ba1739f734d
SHA3-384("The quick brown fox jumps over the lazy dog")7063465e08a93bce31cd89d2e3ca8f602498696e253592ed26f07bf7e703cf328581e1471a7ba7ab119b1a9ebdf8be41SHA3-384("The quick brown fox jumps over the lazy dog.")1a34d81695b622df178bc74df7124fe12fac0f64ba5250b78b99c1273d4b080168e10652894ecad5f1f4d5b965437fb9
SHA3-512("The quick brown fox jumps over the lazy dog")01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450SHA3-512("The quick brown fox jumps over the lazy dog.")18f4f4bd419603f95538837003d9d254c26c23765565162247483f65c50303597bc9ce4d289f21d1c2f1f458828e33dc442100331b35e7eb031b5d38ba6460f8
SHAKE128("The quick brown fox jumps over the lazy dog", 256)f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66eSHAKE128("The quick brown fox jumps over the lazy dof", 256)853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c

Криптоанализ

[править |править код]
Результаты криптоанализа во время конкурса[4].
ЦельТип атакиВыходВариантCF CallПамять
Хеш-функцияКоллизия160r = {240, 640, 1440},

c = 160,

1, 2 раунда

Хеш-функцияНахождение прообраза80r = {240, 640, 1440},

c = 160,

1, 2 раунда

ПерестановкиАтака-различительВсе24 раунда21579{\displaystyle 2^{1579}}
ПерестановкиДифференциальное свойствоВсе8 раундов2491.47{\displaystyle 2^{491.47}}
Хеш-функцияАтака-различитель224, 2564 раунда225{\displaystyle 2^{25}}
Хеш-функцияКоллизия224, 2562 раунда233{\displaystyle 2^{33}}
Хеш-функцияНахождение второго прообраза224, 2562 раунда233{\displaystyle 2^{33}}229{\displaystyle 2^{29}}
Хеш-функцияНахождение второго прообраза5126 раундов2506{\displaystyle 2^{506}}2176{\displaystyle 2^{176}}
Хеш-функцияНахождение второго прообраза5127 раундов2507{\displaystyle 2^{507}}2320{\displaystyle 2^{320}}
Хеш-функцияНахождение второго прообраза5128 раундов2511.5{\displaystyle 2^{511.5}}2508{\displaystyle 2^{508}}
Хеш-функцияКоллизия224, 2564 раунда

Примечания

[править |править код]
  1. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition  (неопр.). Дата обращения: 3 октября 2012. Архивировано 5 октября 2012 года.
  2. 12NIST Releases SHA-3 Cryptographic Hash Standard  (неопр.). Дата обращения: 21 января 2016. Архивировано 17 августа 2015 года.
  3. 12NIST Manuscript Publication Search  (неопр.). Дата обращения: 21 января 2016. Архивировано 12 августа 2015 года.
  4. 12Shu-jen Chang, Ray Perlner, William E. Burr, Meltem Sonmez Turan, John M. Kelsey. Third-Round Report of the SHA-3 Cryptographic Hash Algorithm Competition. —doi:10.6028/nist.ir.7896.
  5. 12Keccak Team (англ.). keccak.team. Дата обращения: 15 декабря 2017. Архивировано 16 декабря 2017 года.
  6. SHA-3 Project - Hash Functions | CSRC  (неопр.). csrc.nist.gov. Дата обращения: 7 ноября 2017. Архивировано 20 ноября 2017 года.
  7. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition  (неопр.). NIST (2 октября 2012). Дата обращения: 2 октября 2012. Архивировано 30 апреля 2017 года.
  8. 12Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. The Road from Panama to Keccak via RadioGatún // Symmetric Cryptography / Helena Handschuh, Stefan Lucks, Bart Preneel, Phillip Rogaway. — Dagstuhl, Germany: Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany, 2009. Архивировано 22 декабря 2017 года.
  9. Keccak Team (англ.). keccak.team. Дата обращения: 12 ноября 2017. Архивировано 13 ноября 2017 года.
  10. Keccak Team (англ.). keccak.team. Дата обращения: 12 ноября 2017. Архивировано 13 ноября 2017 года.
  11. 123456Morris J. Dworkin. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. —doi:10.6028/nist.fips.202.
  12. Will Keccak = SHA-3?  (неопр.) (1 октября 2013). Дата обращения: 20 декабря 2013. Архивировано 30 января 2014 года.
  13. What the heck is going on with NIST's cryptographic standard, SHA-3? (англ.). 24 сентября 2013.Архивировано 25 января 2014. Дата обращения: 20 декабря 2013.
  14. Yes, this is Keccak!  (неопр.) (4 октября 2013). Дата обращения: 20 декабря 2013. Архивировано 8 декабря 2013 года. — ответное заявление от авторов Keccak
  15. The Keccak sponge function family  (неопр.) (17 января 2011). Дата обращения: 30 сентября 2015. Архивировано 12 сентября 2015 года. — изменение алгоритма заполнения в 3-м раунде конкурса
  16. SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash  (неопр.). Дата обращения: 31 октября 2017. Архивировано 31 октября 2017 года.

Ссылки

[править |править код]

Реализации:

В другом языковом разделеесть более полная статьяSHA-3 (англ.).
Вы можете помочь проекту, расширив текущую статьюс помощью перевода
Перейти к шаблону «Хеш-алгоритмы»
Общего назначения
Криптографические
Функции формирования ключа
Контрольное число (сравнение)
Применение хешей
Источник —https://ru.wikipedia.org/w/index.php?title=SHA-3&oldid=137988098
Категории:
Скрытые категории: