slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Хеш-функции в криптографията PowerPoint Presentation
Download Presentation
Хеш-функции в криптографията

Loading in 2 Seconds...

play fullscreen
1 / 22

Хеш-функции в криптографията - PowerPoint PPT Presentation


  • 145 Views
  • Uploaded on

Хеш-функции в криптографията. Определение. Х еш-функция (или хеш-алгоритъм) се нарича метод, който преобразува данни в число. Тези функции осигуряват начин за създаване на цифрови „отпечатъци” от всякакъв тип данни.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Хеш-функции в криптографията' - paco


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
Определение

Хеш-функция (или хеш-алгоритъм) се нарича метод, който преобразува данни в число.

Тези функции осигуряват начин за създаване на цифрови „отпечатъци” от всякакъв тип данни.

В криптографията тези „отпечатъци” често са наричани цифрови сигнатури или хеш-стойности, които обикновено се представят в шетнайсететична бройна система и служат за контролиране целостта на криптираните съобщения.

Хеш-функциите често се използват за хеширане на потребителски пароли и съхранение на хешовете, вместо самите пароли.

slide3
Свойства на хеш-функциите

Изискванията към хеш-функциите използвани в криптографията са:

1/ За данни с произволна дължина хеш-стойностите имат фиксирана дължина.

2/ H(x) е относително лесно да се изчисли за всяко х.

3/ H(x) е еднопосочна функция (one-way function) или функция със задна врата (trapdoor function).

4/ Н(х) е силно защитена от колизии, т.е. невъзможно е чрез изчисления да се намерят произволни х и у, за които да е изпълнено Н(х) = Н(у).

slide4
Еднопосочна хеш-функция MD4
  • Входните съобщения се обработват на блокове с дължина 512 бита, всеки от които съдържа по 16 32-битови подблока. При обработката се използват следните три функции F, G и Н:
        • F(X,Y,Z) = (X and Y) or ((not X) and Z)
        • G(X,Y,Z) = (X and Y) or (X and Z) or (Y and Z)
        • H(X,Y,Z) = X xor Y xor Z
  • Процедурата за изчисляване на хеш-стойността Н на съобщението М се изпълнява в следната последователност:
  • Стъпка 1: Входното съобщение М се разделя на 512-битови блокове, като последният блок се допълва до размерност 448 бита чрез добавяне на единица и необходимия брой нули.
slide5
Еднопосочна хеш-функция MD4

Стъпка 2: Към последния 448-битов блок се прибавя 64-битова група, указваща дължината на М в битове. Полученото разширено съобщение М* ще съдържа цяло число L 512-битови блока, респективно - цяло число 16L 32-битови подблока (думи).

Стъпка 3: Инициализиране на четири 32-битови променливи А, В, C и D.

Стъпка 4: Копиране на първия 512-битов блок в масив от 32-битови думи

Стъпка 5:AA = A; BB = B; CC = C; DD = D

slide6
Еднопосочна хеш-функция MD4
  • Стъпка 6:Реализация на 1-ва итерация (16 операции)
    • К1 = 0
    • F(X,Y,Z) = (X and Y) or ((not X) and Z)
  • Стъпка 7: Реализация на 2-ра итерация (16 операции)
    • К2 = 5A82799916
    • G(X,Y,Z) = (X and Y) or (X and Z) or (Y and Z)
  • Стъпка 8: Реализация на 3-та итерация (16 операции)
    • К3 = 6ED9EBA116
    • H(X,Y,Z) = X xor Y xor Z
slide7
Еднопосочна хеш-функция MD4

Стъпка 9: A = A+AA; B = B+BB; C = C+CC; D = D+DD (сумирането е по mod 232)

Стъпка 10: Повторение от стъпка 4 за i=1, i=2 и т.н. до i=(L-1).

Стъпка 11: Извеждане на 128-битовата хеш-стойност H = (A,B,C,D) на входното съобщение М.

Пример:

H(‘e’) = aec2333321d73000161682d3c4ebc009

H(‘example’) = e1821c366558728f70e054fbf9db7b64

H(‘Example’) = e31846f587fe2f61edd99ad2939876b5

slide8
Еднопосочна хеш-функция MD5
  • MD5 е развитие на MD4 с цел повишаване на сигурността. Алгоритъмът използва 4 итерации и следните функции F, G, H и I:
        • F(X,Y,Z) = (X and Y)or((not X)and Z)
        • G(X,Y,Z) = (X and Z) or (Y and (not Z))
        • H(X,Y,Z) = X xor Y xor Z
        • I(X,Y,Z) = Y xor (X or not Z)
  • Процедурата за изчисляване на хеш-стойността Н на съобщението М е следната:
  • Първите 5 стъпки на процедурата за изчисляване на Н с MD5 съвпадат с описаните за MD4.
slide9
Еднопосочна хеш-функция MD5

Стъпка 6:Реализация на 1-ва итерация (16 операции)

F(X,Y,Z) = (X and Y)or((not X)and Z)

Стъпка 7: Реализация на 2-ра итерация (16 операции)

G(X,Y,Z) = (X and Z) or (Y and (not Z))

Стъпка 8: Реализация на 3-та итерация (16 операции)

H(X,Y,Z) = X xor Y xor Z

Стъпка 9: Реализация на 4-та итерация (16 операции)

I(X,Y,Z) = Y xor (X or not Z)

Последните стъпки 10, 11 и 12 на MD5 съвпадат, съответно със стъпки 9, 10 и 11 на описаната процедура на MD4.

Ki = floor(232.abs(sin(i+1)))

slide10
Задача 1

Дадени са следнитеMD5 функции:

F(X, Y, Z) = (X and Y ) or (not X and Z)

G(X, Y, Z) = (X and Z) or (Y andnot Z)

H(X, Y, Z) = X xor Y xor Z

I(X, Y, Z) = Y xor (X ornot Z)

Изчислете всяка от функциите, като използвате следните аргументи:

(a) X := 0110, Y := 1111, Z := 0011

(b) X := 1010, Y := 1001, Z := 1011

(c) X := 0111, Y := 0001, Z := 1001

slide11
Задача 2
  • Изчислете 16 битовата хеш-сигнатура на 32 битово съобщение, зададено като 16-тично число, като използвате 1-ва итерация на алгоритъма MD4, преработена по следния начин:
      • (АА,ВВ,СС,DD) := (A,B,C,D)
      • for i := 0 to 3 do
      • t := A + F(B,C,D) +Mi
      • (A,B,C,D) := (D, t<<<i,B,C)
      • end
      • (A,B,C,D) := (АА + A, ВВ + B, СС + C, DD + D)
  • Първоначалните стойности на променливите А, В, С, D са (116, 416, А16, В16).
  • Съобщението е М=FAB17E6616.
slide12
Задача 2/решение/

(А, В, С, D)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-----------------------------------------------------------------------------

(АА,ВВ,СС,DD) := (116, 416, А16, В16)

i := 0

t := 116 + F(416, А16, В16) + F16

= 116 + В16 + F16 = В16

F(416, А16, В16) = (0100 and 1010) or (1011 and 1011) = 1011 = В16

(A,B,C,D) := (В16, В16<<<0, 416, А16) = (В16, В16, 416, А16)

slide13
Задача 2 /решение/

(АA, ВB, CС, DD)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (B16, B16, 416, A16)

i := 1

t := B16 + F(B16, 416, A16) + A16

= B16 + 016 + A16 = 516

F(B16, 416, A16) = (1011 and 0100) or (0100 and 1010) = 0000 = 016

(A,B,C,D) := (A16, 516<<<1, B16, 416) = (A16, A16, B16, 416)

slide14
Задача 2 /решение/

(АA, BВ, CС, DD)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (A16, A16, B16, 416)

i := 2

t := A16 + F(A16, B16, 416) + B16

= A16 + E16 + B16 = 316

F(A16, B16, 416) = (1010 and 1011) or (0101 and 0100) = 1110 = E16

(A,B,C,D) := (416, 316<<<2, A16, B16) = (416, C16, A16, B16)

slide15
Задача 2 /решение/

(АA, ВB, СC, DD)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (416, C16, A16, B16)

i := 3

t := 416 + F(C16, A16, B16) + 116

= 416 + B16 + 116 = 016

F(C16, A16, B16) = (1100 and 1010) or (0011 and 1011) = 1011 = B16

(A,B,C,D) := (B16, 016<<<3, C16, A16) = (B16, 016, C16, A16)

slide16
Задача 2 /решение/

(АA, ВB, СC, DD)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (B16, 016, C16, A16)

(A,B,C,D) := (116+B16, 416+016, A16+C16, B16+A16)

(A,B,C,D) := (C16, 416, 616, 516)

slide17
Задача 2 /решение/

(АA, ВB, СC, DD)= (116, 416, А16, В16) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(АА,ВВ,СС,DD) := (C16, 416, 616, 516)

i := 0

t := C16 + F(416, 616, 516) + 716

= C16 + 516 + 716 = 816

F(416, 616, 516) = (0100 and 0110) or (1011 and 0101) = 0101 = 516

(A,B,C,D) := (516, 816<<<0, 416, 616) = (516, 816, 416, 616)

slide18
Задача 2 /решение/

(АA, ВB, СC, DD)= (C16, 416, 616, 516) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (516, 816, 416, 616)

i := 1

t := 516 + F(816, 416, 616) + E16

= 516 + 616 + E16 = 916

F(816, 416, 616) = (1000 and 0100) or (0111 and 0110) = 0110 = 616

(A,B,C,D) := (616, 916<<<1, 816, 416) = (616, 316, 816, 416)

slide19
Задача 2 /решение/

(АA, ВB, СC, DD)= (C16, 416, 616, 516) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (616, 316, 816, 416)

i := 2

t := 616 + F(316, 816, 416) + 616

= 616 + 416 + 616 = 016

F(316, 816, 416) = (0011 and 1000) or (1100 and 0100) = 0100 = 416

(A,B,C,D) := (416, 016<<<2, 316, 816) = (416, 016, 316, 816)

slide20
Задача 2 /решение/

(АA, ВB, СC, DD)= (C16, 416, 616, 516) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (416, 016, 316, 816)

i := 3

t := 416 + F(016, 316, 816) + 616

= 416 + 816 + 616 = 216

F(016, 316, 816) = (0000 and 0011) or (1111 and 1000) = 1000 = 816

(A,B,C,D) := (816, 216<<<3, 016, 316) = (816, 116, 016, 316)

slide21
Задача 2 /решение/

(АA, ВB, СC, DD)= (C16, 416, 616, 516) ; М=FAB17E6616

(АА,ВВ,СС,DD) := (A,B,C,D)

for i := 0 to 3 do

t := A + F(B,C,D) +Mi // F(B,C,D) = (B and C) or (notB and D)

(A,B,C,D) := (D, t<<<i,B,C)

end

(A,B,C,D) := (АА+A, ВВ+B, СС+C, DD+D)

-------------------------------------------------------------- ---------------

(А,В,С,D) := (816, 116, 016, 316)

(A,B,C,D) := (C16+816, 416+116, 616+016, 516+316)

(A,B,C,D) := (416, 516, 616, 816)

H(M) = 456816

slide22
Пример

M=example

=6578616D706C653816

H(M)=814C16

01100101 01111000 01100001 01101101 01110000 01101100 01100101

00111000

6 5 7 8 6 1 6 D 7 0 6 C 6 5 3 8

M=Example

=4578616D706C653816

H(M)=????????16