MD5 (message digest algorithm), Детальна інформація
MD5 (message digest algorithm)
1 1 0 1 1 0 0
1 1 1 1 1 1 0
Рисунок 3. Елементарна операція
Кожний раунд в обробці одного 512 бітового блока складається із послідовності 16 кроків, кожен з яких є наступною операцією над ABCD буфером:
a = b + ((a + g(b, c, d) + X[k] + T[i]) <<< s),
де <<< s є операцією циклічного зсуву вліво на s біт,
X[k] = M[q * 16 + k] – k-те 32 бітове слово в q-ому 512 бітовому блоці вхідного повідомлення.
В кожному раунді значення X[i] використовується лише один раз. До першого раунда біти надходять в тому ж порядку як вони стоять на вході. При надходження бітів до 2, 3 та 4 раундів використовуються наступні перестановки:
\xF072\xF032(i) = (1 + 5i) mod 16
\xF072\xF033(i) = (5 + 3i) mod 16
\xF072\xF034(i) = 7i mod 16
/* обробити кожне 16 бітове слово 512 бітового блока */
for q = 0 to (N/16) – 1 do
/* скопіючати блок q в X */
for j = 0 to 15 do
X[j] = M[q * 16 + j]
end /* циклу по j */
AA = A
BB = B
CC = C
DD = D
/* Раунд 1 */
/* [abcd k s i] визначає операцію a = b + ((a + F(b, c, d) + X[k] + T[i]) <<< s) */
[ABCD 0 7 1]
[DABC 1 12 2]
[CDAB 2 17 3]
[BCDA 3 22 4]
[ABCD 4 7 5]
[DABC 5 12 6]
1 1 1 1 1 1 0
Рисунок 3. Елементарна операція
Кожний раунд в обробці одного 512 бітового блока складається із послідовності 16 кроків, кожен з яких є наступною операцією над ABCD буфером:
a = b + ((a + g(b, c, d) + X[k] + T[i]) <<< s),
де <<< s є операцією циклічного зсуву вліво на s біт,
X[k] = M[q * 16 + k] – k-те 32 бітове слово в q-ому 512 бітовому блоці вхідного повідомлення.
В кожному раунді значення X[i] використовується лише один раз. До першого раунда біти надходять в тому ж порядку як вони стоять на вході. При надходження бітів до 2, 3 та 4 раундів використовуються наступні перестановки:
\xF072\xF032(i) = (1 + 5i) mod 16
\xF072\xF033(i) = (5 + 3i) mod 16
\xF072\xF034(i) = 7i mod 16
/* обробити кожне 16 бітове слово 512 бітового блока */
for q = 0 to (N/16) – 1 do
/* скопіючати блок q в X */
for j = 0 to 15 do
X[j] = M[q * 16 + j]
end /* циклу по j */
AA = A
BB = B
CC = C
DD = D
/* Раунд 1 */
/* [abcd k s i] визначає операцію a = b + ((a + F(b, c, d) + X[k] + T[i]) <<< s) */
[ABCD 0 7 1]
[DABC 1 12 2]
[CDAB 2 17 3]
[BCDA 3 22 4]
[ABCD 4 7 5]
[DABC 5 12 6]
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021