RIPEMD-320

RIPEMD-320

RIPEMD-320 — хэш-функция разработанная Хансом Доббертином, Антоном Боселаерсом и Бартом Принилом в 1996 году. Размер хэша — 320 бит. Размер блока входных данных — 512 бит. Уязвимостей на текущий момент не обнаружено. RIPEMD-320 является развитием RIPEMD-160, и предназначена для приложений, которые требуют более длинного хэша и не нуждаются в большей безопасности, чем приложения уровня RIPEMD-160.

Пример

RIPEMD-320("") = 22d65d5661536cdc75c1fdf5c6de7b41b9f27325ebc61e8557177d705a0ec880151c3a32a00899b8

RIPEMD-320("а") = ce78850638f92658a5a585097579926dda667a5716562cfcf6fbe77f63542f99b04705d6970dff5d

Псевдокод для RIPEMD-320

 RIPEMD-320: определения
   nonlinear functions at bit level: exor, mux, -, mux, -
   f(j, x, y, z) = x XOR y XOR z                (0 <= j <= 15)
   f(j, x, y, z) = (x AND y) OR (NOT(x) AND z)  (16 <= j <= 31)
   f(j, x, y, z) = (x OR NOT(y)) XOR z          (32 <= j <= 47)
   f(j, x, y, z) = (x AND z) OR (y AND NOT(z))  (48 <= j <= 63)
   f(j, x, y, z) = x XOR (y OR NOT(z))          (64 <= j <= 79)
    константы (шестнадцатеричные)
   K(j) = 0x00000000      (0 <= j <= 15)     
   K(j) = 0x5A827999     (16 <= j <= 31)      int(2**30 x sqrt(2))
   K(j) = 0x6ED9EBA1     (32 <= j <= 47)      int(2**30 x sqrt(3))
   K(j) = 0x8F1BBCDC     (48 <= j <= 63)      int(2**30 x sqrt(5))
   K(j) = 0xA953FD4E     (64 <= j <= 79)      int(2**30 x sqrt(7))
   K'(j) = 0x50A28BE6     (0 <= j <= 15)      int(2**30 x cbrt(2))
   K'(j) = 0x5C4DD124    (16 <= j <= 31)      int(2**30 x cbrt(3))
   K'(j) = 0x6D703EF3    (32 <= j <= 47)      int(2**30 x cbrt(5))
   K'(j) = 0x7A6D76E9    (48 <= j <= 63)      int(2**30 x cbrt(7))
   K'(j) = 0x00000000    (64 <= j <= 79)


   выбор слов в сообщении
   r(j)      = j                    (0 <= j <= 15)
   r(16..31) = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8
   r(32..47) = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12
   r(48..63) = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2
   r(64..79) = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
   r'(0..15) = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12
   r'(16..31)= 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2
   r'(32..47)= 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13
   r'(48..63)= 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14
   r'(64..79)= 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
   сумма для левого поворота
   s(0..15)  = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8
   s(16..31) = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12
   s(32..47) = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5
   s(48..63) = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12
   s(64..79) = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
   s'(0..15) = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6
   s'(16..31)= 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11
   s'(32..47)= 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5
   s'(48..63)= 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8
   s'(64..79)= 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
   первоначалыные значения (шестнадцатиричные)
   h0 = 0x67452301; h1 = 0xEFCDAB89; h2 = 0x98BADCFE; h3 = 0x10325476; h4 = 0xC3D2E1F0;
   h5 = 0x76543210; h6 = 0xFEDCBA98; h7 = 0x89ABCDEF; h8 = 0x01234567; h9 = 0x3C2D1E0F;
 RIPEMD-320: псевдокод


   for i := 0 to t-1 {
       A := h0; B := h1; C := h2; D = h3; E = h4;
       A' := h5; B' := h6; C' := h7; D' = h8; E' = h9;
       for j := 0 to 79 {
           T := rol_s(j)(A [+] f(j, B, C, D) [+] X[i][r(j)] [+] K(j)) [+] E;
           A := E; E := D; D := rol_10(C); C := B; B := T;
           T := rol_s'(j)(A' [+] f(79-j, B', C', D') [+] X[i][r'(j)] [+] K'(j)) [+] E';
           A' := E'; E' := D'; D' := rol_10(C'); C' := B'; B' := T;
           if j == 15 {
               T := B; B := B'; B' := T;
           } else if j == 31 {
               T := D; D := D'; D' := T;
           } else if j == 47 {
               T := A; A := A'; A' := T;
           } else if j == 63 {
               T := C; C := C'; C' := T;
           } else if j == 79 {
               T := E; E := E'; E' := T;
           }
       }
       h0 := h0 + A; h1 := h1 + B; h2 := h2 + C; h3 := h3 + D; h4 := h4 + E;
       h5 := h5 + A'; h6 := h6 + B'; h7 := h7 + C'; h8 := h8 + D'; h9 := h9 + E';
   }

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "RIPEMD-320" в других словарях:

  • RIPEMD — 160 (RACE Integrity Primitives Evaluation Message Digest) is a 160 bit message digest algorithm (and cryptographic hash function) developed in Leuven (Belgium) by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at… …   Wikipedia

  • RIPEMD-160 — Saltar a navegación, búsqueda RIPEMD 160 (acrónimo de RACE Integrity Primitives Evaluation Message Digest, primitivas de integridad del resumen del mensaje) es un algoritmo del resumen del mensaje de 160 bits (y función criptográfica de hash)… …   Wikipedia Español

  • RIPEMD-160 — (RACE Integrity Primitives Evaluation Message Digest) ist eine kryptographische Hashfunktion mit einer Ausgabe von 160 Bits. RIPEMD 160 wurde von Hans Dobbertin, Antoon Bosselaers und Bart Preneel in Europa entwickelt und 1996 erstmals publiziert …   Deutsch Wikipedia

  • RIPEMD — 160 (RACE Integrity Primitives Evaluation Message Digest) ist eine kryptographische Hash Funktion mit einer Ausgabe von 160 Bits. RIPEMD 160 ist eine kryptologische Hash Funktion und wurde von Hans Dobbertin, Antoon Bosselaers und Bart Preneel in …   Deutsch Wikipedia

  • RIPEMD-256 — RIPEMD 256  хэш функция разработанная Хансом Доббертином, Антоном Боселаерсом и Бартом Принилом в 1996 году. Размер хэша  256 бит. Размер блока входных данных  512 бит. RIPEMD 256 является развитием RIPEMD 128 и предназначен для… …   Википедия

  • RIPEMD-160 — Криптографическая хеш функция Название RIPEMD 160 Создан 1996 Опубликован 18 апреля 1996 Размер хеша 160 бит Число раундов 5 Тип хеш функция RIPEMD 160 (от англ. RACE Integrity P …   Википедия

  • RIPEMD-128 — Криптографическая хеш функция Название RIPEMD 128 Создан 1996 Размер хеша 128 бит Тип хеш функция RIPEMD 128  хеш функция, разработанная Хансом Доббертином, Антоном Боселаерсом и Бартом Принилом в 1996 году. Размер хеша  128 бит. Размер …   Википедия

  • Ripemd-160 — L algorithme de hachage RIPEMD 160, pour RACE Integrity Primitives Evaluation Message Digest, est une fonction de hachage qui génère une signature de 160 bits. Elle a été développée en Europe par Hans Dobbertin, Antoon Bosselaers et Bart Preneel …   Wikipédia en Français

  • RIPEMD-160 — L algorithme de hachage RIPEMD 160, pour RACE Integrity Primitives Evaluation Message Digest, est une fonction de hachage qui produit une signature de 160 bits. Elle a été développée en Europe par Hans Dobbertin, Antoon Bosselaers et Bart Preneel …   Wikipédia en Français

  • Comparison of cryptographic hash functions — The following tables compare general and technical information for a number of cryptographic hash functions.[1] Contents 1 General information 1.1 Notes 2 Compression function …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»