1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) báo cáo NGHIÊN cứu tìm HIỂU về HASH FUNCTIONS dựa TRÊN BLOCK CIPHERS

24 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo Nghiên cứu Tìm hiểu về Hash Functions Dựa trên Block Ciphers
Tác giả Trương Văn Tâm, Đào Văn Thạo, Phạm Văn Ngọc, Tuấn Lê Văn Tiền, Nguyễn Văn Trường, Nguyễn Đức Anh
Người hướng dẫn GV. Hoàng Thu Phương
Trường học Học viện Kỹ thuật Mật mã
Chuyên ngành An toàn thông tin
Thể loại Báo cáo Nghiên cứu
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 440,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong phần 2, chúng ta sẽ xem xét các cuộc tấn công có thể xảy ra đối vớicác hàm băm lặp đi lặp lại, xem xét các mối quan hệ giữa tính bảo mật của mộthàm băm được lặp lại và tính bảo mật

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO NGHIÊN CỨU

TÌM HIỂU VỀ HASH FUNCTIONS DỰA

TRÊN BLOCK CIPHERS

Ngành: An toàn thông tin

Nhóm 6

Sinh viên thực hiện:

Trương Văn Tâm

Đào Văn Thạo

Phạm Văn Ngọc Tuấn

Lê Văn Tiền

Nguyễn Văn Trường

Trang 2

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO NGHIÊN CỨU

TÌM HIỂU VỀ HASH FUNCTIONS BASE ON

BLOCK CIPHERS

Ngành: An toàn thông tin

Nhóm 6

Sinh viên thực hiện:

Trương Văn Tâm

Đào Văn Thạo

Phạm Văn Ngọc Tuấn

Lê Văn Tiền

Nguyễn Văn Trường

Nguyễn Đức Anh

Người hướng dẫn:

GV.Hoàng Thu Phương

Hà Nội, 2021

Trang 3

MỤC LỤC

MỤC LỤC .iii

LỜI MỞ ĐẦU vi

Chương 1. Giới thiệu 1

Chương 2: Các hàm băm và tấn công phát lại 2

Chương 3:Hàm Băm dựa trên Mã Khối 8

3

Trang 4

MỞ ĐẦU

Tổng quan, các hàm băm được lặp lại dựa vào mã hóa khối đã được xử lý.Năm cuộc tấn công vào một hàm băm lặp đi lặp lại và vòng băm của chúng đãđược xây dựng Sự khôn ngoan của việc tăng cường các hàm băm như vậy bằngcách hạn chế block cuối cùng của thông điệp được băm được nhấn mạnh Các sơ

đồ để xây dựng các vòng băm m-bit và 2m-bit đã được nghiên cứu Cách chủ yếu

để để đánh giá sức mạnh của các vòng băm là dùng phép toán đơn giản (trong cảhai phân đoạn) cho phép biến đổi có thể đảo ngược cho đầu vào và đầu ra của mộtvòng băm tạo ra một vòng băm mới với cùng một cấp độ bảo mật Bằng cách ápdụng nguyên tắc này, bốn cuộc tấn công vào ba chức năng vòng băm 2m bit đã đềxuất trước đó được triển khai Cuối cùng, ba vòng băm mới trên một bộ mã hóakhối m-bit với 1 khóa 2m-bit được đề xuất

Trang 6

PHẦN 1: GIỚI THIỆU

Bản báo cáo này sẽ cung cấp cho người đọc thông tin một cách khá đầy đủ

về các hàm băm có được bằng cách lặp lại một hàm vòng

Trong phần 2, chúng ta sẽ xem xét các cuộc tấn công có thể xảy ra đối vớicác hàm băm lặp đi lặp lại, xem xét các mối quan hệ giữa tính bảo mật của mộthàm băm được lặp lại và tính bảo mật vòng băm của nó nhằm chỉ ra tinh hoa củaviệc tăng cường sức mạnh cho hàm băm bằng cách cuộn block cuối cùng củathông điệp để băm

Trong phần 3, ta xem xét các hàm băm dựa vào mã hóa khối (hash functionsbased on block ciphers) Đặc biệt, ta sẽ xét đến các vấn đề xây dựng các vòng bămm-bit và các vòng băm 2m-bit từ mật mã khối m-bit Một nguyên tắc được chínhthức hóa để đánh giá sức mạnh của các hàm vòng băm là việc áp dụng các phépbiến đổi đảo ngược đơn giản về mặt tính toán (trong cả hai phân đoạn) cho đầu vào

và đầu ra của vòng băm tạo ra một vòng băm mới với cùng mức độ bảo mật Đểchứng minh nguyên tắc này, chúng tôi thực hiện bốn cuộc tấn công vào ba vòngbăm 2m-bit được đề xuất trước đó Cuối cùng, các vòng băm mới dựa trên mật mãkhối m-bit với khóa 2m-bit được đề xuất

Trang 7

2 Các hàm băm và tấn công phát lại

Hàm băm là một ánh xạ có thể thực hiện dễ dàng từ tập hợp tất cả các chuỗinhị phân có độ dài tối thiểu nhất định hoặc lớn hơn đến tập hợp các chuỗi nhị phân

có độ dài cố định nào đó

Trong các ứng dụng mật mã, các hàm băm được sử dụng trong các chươngtrình chữ ký số và trong các chương trình cung cấp tính toàn vẹn của dữ liệu (vídụ: để phát hiện việc sửa đổi một thông báo)

Hàm băm phát lại là một hàm băm Hash (-) được xác định bởi một hàm cóthể tính toán dễ dàng h (-,-) từ hai chuỗi nhị phân có độ dài tương ứng m và đếnmột chuỗi nhị phân có độ dài m theo cách thông báo

M = ( M1+ M2 +… + M n ) trong đó Mi có độ dài l, được băm thành giá trị băm

H = Hn có độ dài m bằng tính toán đệ quy

Hi = h(Hi-1 , Mi ) i = 1,2, ,n (1)

trong đó h là một giá trị ban đầu được chỉ định Chúng ta sẽ viết M = Hash(H0, M) để thể hiện rõ ràng sự phụ thuộc vào H0 Hàm h sẽ được gọi là hàm bămvòng Việc xây dựng đệ quy các hàm băm như vậy đã được Merkle gọi là “phươngpháp meta” Đối với dữ liệu thông báo có tổng độ dài tính bằng bit không phải làbội số của l, người ta có thể áp dụng "Padding" (hiểu nôm na là khoảng đệm) xácđịnh cho thông báo được băm bởi (1) để tăng tổng độ dài lên bội số của l

Đối với các hàm băm phát lại, chúng ta phân biệt 5 cuộc tấn công sau:

1 Tấn công mục tiêu ( Target attack ): Cho H0 và M tìm M’ sao M’ ≠ M nhưng Hash(H0 , M’) = Hash(H0 , M)

2 Tấn công mục tiêu khởi động tự do (Free-start target attack ): Cho H0 và Mtìm H '0 và M’ sao cho ( H '0 ,M ) ≠ (H0 , M ) nhưng Hash(H '0 , M’) = Hash(H0 , M)

3 Tấn công va chạm ( Collision attacks): Cho H0, tìm M và M’ sao cho M’ ≠

M nhưng Hash(H0 , M’) = Hash(H0 , M)

4 Tấn công va chạm bán tự do ( Semi-free-start collision attack ): Tìm H0, M

và M’ sao cho M’ ≠ M nhưng Hash(H0 , M’) = Hash(H0 , M)

5 Tấn công va chạm khởi động tự do ( Free-start collision attack ): Tìm H0,

H '0 ,M và M’ sao cho ( H '0 ,M ) ≠ (H0 , M ) nhưng Hash(H '0 , M’) = Hash(H0 ,M)

2

Trang 8

Nhận xét: Trong các ứng dụng mà H0 được chỉ định và cố định, các cuộc tấncông 2, 4 và 5 không phải là “các cuộc tấn công thực sự” Điều này là do giá trịban đầu H0 sau đó là một phần tích hợp của hàm băm nên một giá trị băm đượctính từ một giá trị ban đầu khác sẽ không được chấp nhận Tuy nhiên, nếu ngườigửi được tự do lựa chọn và / hoặc thay đổi H0, thì các cuộc tấn công 2, 4 và 5 cóthể là các cuộc tấn công thực sự, tùy thuộc vào cách mà hàm băm được sử dụng.Lưu ý rằng các cuộc tấn công khởi động tự do và nửa tự do không bao giờ khó hơncác cuộc tấn công mà H0 được chỉ định trước.

Đối với hàm băm m-bit, các cuộc tấn công mục tiêu brute-force, trong đóngười ta chọn ngẫu nhiên một M ’cho đến khi một người chạm vào “ mục tiêu ” H

= Hash (H0, M), yêu cầu khoảng 2m phép tính các giá trị băm Nó theo sau từ "birthday argument" thông thường rằng các cuộc tấn công va chạm bruteforce yêu cầukhoảng 2m/2 phép tính giá trị băm Đặc biệt, đối với các hàm băm tròn l ≥ m để có thểđạt được tất cả các giá trị băm 2m với các tệp tin một khối, các cuộc tấn công mục tiêubrute-force yêu cầu khoảng 2m tính toán của hàm vòng h trong khi các cuộc tấn công

va chạm brute-force yêu cầu khoảng 2m/2 các phép tính của hàm vòng h Chúng ta sẽnói rằng tính bảo mật tính toán của hàm băm là lý tưởng khi không có sự thiếu hụtnào về cơ bản tốt hơn brute force

Trong phần thảo luận sau đây, chúng tôi xem xét một số mối quan hệ giữatính bảo mật của một hàm băm được lặp lại và độ mạnh của hàm vòng băm của nó.Bằng một cuộc tấn công vào hàm vòng băm, chúng ta có nghĩa là một cuộc tấncông trong đó tất cả các thông điệp liên quan chỉ chứa một khối Ví dụ, một cuộctấn công mục tiêu trên hàm vòng h có nội dung: cho H0 và M1, tìm M '1 sao cho M '1

≠ M1 nhưng h (H0, M '1) = h (H0, M1) Khi một cuộc tấn công mục tiêu vào hàmvòng tạo ra M '1 , sau đó, bằng cách 'đính kèm' các khối thông báo M2, , Mn củathông báo đã cho vào M '1 , người ta sẽ đạt được thành công trong một cuộc tấn côngmục tiêu vào hàm băm được phát lại.Tương tự đối số cũng giữ cho các kiểu tấn côngkhác

Mệnh đề 1 Đối với một hàm băm phát lại, bất kỳ cuộc tấn công nào vàohàm vòng của nó đều ngụ ý một cuộc tấn công cùng loại vào hàm băm đã lặp vớicùng độ phức tạp tính toán

Trang 9

Cần lưu ý rằng ngược lại của phát biểu Định lý 1 nói chung là không đúng.

Có thể có các cuộc tấn công vào hàm băm được lặp lại dễ dàng hơn các cuộc tấncông vào hàm vòng một mình, như các ví dụ sau đây cho thấy:

Ví dụ 1 (Tấn công thông điệp dài.) Đối với một hàm băm phát lại m-bit, chotrước một thông báo khối n M = (M1, M2, , Mn), có một cuộc tấn công mục tiêuxảy ra

Hi = h (Hi-1, Mi) cho i = 1,…,n và lưu trữ các giá trị này Sau đó chúng ta tính H* =

h (H0, M¿ 1 ) lặp đi lặp lại với M¿ 1 được lựa chọn ngẫu nhiên Sau

Đối với n > 2m /2 chúng ta tính toán và lưu trữ H1, H2,…, H2m /2 Khi đó 2m /2 lựachọn ngẫu nhiên M¿ 1 sẽ tạo ra một “trận đấu” của một số H* với một số Hi , 1 i

2m /2 với xác suất khoảng 0,63

Đối với một hàm băm phát lại, người ta luôn có thể thực hiện các cuộc tấncông khởi động tự do "Không đáng kể" sau đây

Ví dụ 2 Trivial free-start attacks (Các cuộc tấn công khởi động tự do khôngđáng kể ): Hãy xem xét một thông báo M = (M1, M2) băm thành H với giá trị banđầu H0 Sau đó, đối với giá trị ban đầu H1 = h (H0, M1 ), thông báo “bị bỏ bớt” M’

= M2 băm cũng tới giá trị H = h (H1, M2) Đó là một cuộc tấn công mục tiêu khởiđộng tự do luôn có thể được thực hiện nếu thông báo chứa nhiều hơn một khối.Tương tự, người ta có thể thực hiện một cuộc tấn công va chạm khởi động tự dokhông đáng kể

4

Trang 10

Ví dụ 3 A trivial semi-free-start collision attack based on a ‘ fixed point’( Một cuộc tấn công va chạm bán tự do không đáng kể dựa trên một điểm cốđịnh ): Nếu hàm băm vòng h có một "điểm cố định" dễ nhận biết, tức là nếu bằngcách nào đó người ta có thể tìm thấy (H, M) như vậy H = h (H, M), sau đó có mộtcuộc tấn công va chạm bán tự do không đang kể từ đó, bắt đầu với giá trị ban đầu H0

= H, các thông báo "khác biệt" M = M và M'= (M, M) đều được băm ở cùng giá trịH

Lưu ý rằng trong các cuộc tấn công khởi động tự do và bán tự do thôngthường và trong cuộc tấn công "tin nhắn dài" được mô tả trong ba ví dụ trên, mộtcuộc tấn công phá vỡ hàm băm đã lặp lại mà không phá vỡ hàm vòng của nó Cáccuộc tấn công như vậy dựa trên thực tế là, đối với một hàm băm phát lại có dạng(1), kẻ tấn công có thể lợi dụng thực tế là một thông báo giả mạo có thể có độ dàikhác với độ dài của thông điệp chính hãng đã cho Vấn đề này có thể được khắcphục bằng cách tăng cường các hàm băm lặp đi lặp lại sau đây, được đề xuất mộtcách thận trọng bởi Merkle và bởi Damgaard :

Tăng cường Merkle-Damgaard (Tăng cường MD) Đối với hàm băm phát lại,chỉ định rằng khối cuối cùng M n của "thông báo" M = (M1, M2 ,…, Mn ) được bămđại diện cho Chiều dài của "thông báo đúng " tính bằng bit, tức là độ dài của phầnkhông được đánh dấu của n-1 khối đầu tiên

Đề xuất 2 Chống lại một cuộc tấn công bắt đầu tự do (mục tiêu hoặc vachạm), một hàm băm lặp đi lặp lại với tăng cường MD, HashMD, có độ bảo mật tínhtoán gần giống như hàm băm vòng của nó

Trong các cuộc thảo luận trước, chúng ta đã xem xét tính bảo mật của mộthàm băm được phát lại và tính bảo mật của hàm vòng của nó trước một cuộc tấncông cùng loại Bây giờ chúng ta xem xét cách liên hệ các cuộc tấn công mục tiêukhởi động tự do "không thực" với các cuộc tấn công mục tiêu "thực" Kết quả sauđây cho thấy rằng, đối với một hàm băm lặp phát lại, khi “ nghịch đảo ngẫu nhiên

”của hàm băm vòng có thể được tìm thấy với ít hơn mức tối đa lý tưởng khoảng 2m

tính toán, khi đó luôn tồn tại một cuộc tấn công mục tiêu trên hàm băm tốt hơncuộc tấn công mục tiêu brute-force

Đề xuất 3 ( Cuộc tấn công mục tiêu gặp nhau ở giữa bằng cách “làm việctrở lại”.) Cho HashMD là một hàm băm được phát lại m-bit với tăng cường MD vàvới hàm vòng h Nếu hầu hết H trong khoảng h, cần khoảng 2n phép tính h để tìm

ra nghiệm mới (H', M') của H = h (H', M') mà H' xuất hiện về cơ bản được chọn

Trang 11

ngẫu nhiên và nếu phần thông báo không bị giới hạn chứa ít nhất hai khối, tức là n

m +5

- 1 ≥ 2, thì sẽ tồn tại một cuộc tấn công mục tiêu vào HashMD mất khoảng 2 x 2 2

lần tính toán h

Bằng chứng Với M và H0 đã cho, hãy cho kết quả của hai lần lặp đầu tiênlà:

H1 = h(H0, M1) H2 = h(H1, M2)Chúng ta chỉ ra cách tìm hai khối thông báo (M '1, M '2) băm thành H2 bằngmột cuộc tấn công “gặp nhau ở giữa” Sau đó thay thế hai khối đầu tiên (M1,M2)trong thông điệp M đã cho bởi (M '1, M '2) , chúng ta thu được thông điệp M’có cùng

độ dài, nhưng M băm tới cùng H

m +5

M1' được chọn ngẫu nhiên;Đầu tiên, chúng ta tính G1 = h (H0, M1') cho 2 2

m +3

cặp (G1', M2') sao cho H2 = h (G1', M2') và G1'về cơ bản xuất

sau đó chúng ta tìm 2 2

hiện được chọn ngẫu nhiên Cuộc tấn công không thành công nếu một vài G1 và G '1

nhận cùng một giá trị Do đó, cuộc tấn công thành công với xác suất

m+ 5

m + 3

cơ hội chọn M1' sao cho G1 sẽ “ bỏ lỡ ”một G1' cụ thể; và có

Trang 12

6

Trang 13

mục tiêu khi và chỉ khi hàm vòng băm h (.,.) của nó có bảo mật tính toán lý tưởng chống lại mục tiêu khởi động tự do tại thời điểm bắt đầu.

Bằng chứng Giả sử hàm vòng h có bảo mật tính toán lý tưởng chống lại mộtcuộc tấn công mục tiêu bắt đầu tự do Sau đó, Đề xuất 2 cho thấy rằng HashMD (.)

có cùng mức bảo mật lý tưởng chống lại một cuộc tấn công mục tiêu bắt đầu tự do.Nhưng một cuộc tấn công mục tiêu mà không bắt đầu tự do là không dễ dàng hơnmột cuộc tấn công mục tiêu bắt đầu tự do để HashMD (.) cũng có khả năng bảo mậttính toán lý tưởng chống lại một cuộc tấn công mục tiêu

Ngược lại, nếu đối với hàm băm m-bit h, một cuộc tấn công mục tiêu bắtđầu tự do cần ít hơn 2m phép tính, thì Mệnh đề 3 ngụ ý một cuộc tấn công mục tiêuvào HashMD với ít hơn 2m phép tính

Từ hai mệnh đề trên, chúng ta thấy rằng tăng cường MD tạo ra các hàm bămlặp lại an toàn từ các hàm vòng an toàn Đặc biệt, sự khởi động tự do không đáng

kể v, các cuộc tấn công khởi động bán tự do và cuộc tấn công mục tiêu tin nhắn dàitrong các ví dụ trên không thể được sử dụng để tấn công một hàm băm phát lại cótăng cường MD Những cân nhắc như vậy gợi ý một nguyên tắc hiển nhiên cho cáchàm băm phát lại, rằng các hàm băm phát lại chỉ nên được sử dụng với tăng cường

MD Trong cuộc thảo luận sau đây, bất cứ khi nào tính bảo mật của một hàm bămlặp đi lặp lại được xem xét, chúng tôi luôn muốn nói đến tính bảo mật của hàmbăm với tăng cường MD

Do Đề xuất 4 và Đề xuất 2 và vì người ta thường mong muốn rằng hàm băm

đủ mạnh để cung cấp khả năng bảo vệ chống lại các cuộc tấn công bắt đầu tự do,vấn đề xây dựng các hàm băm an toàn giảm xuống vấn đề xây dựng các hàm bămvòng an toàn chống lại các cuộc tấn công khởi động tự do sẽ được xem xét trongphần tiếp theo

7

Trang 14

3 Hàm Băm dựa trên mã khối

Trong cuộc thảo luận sau đây, chúng em xem xét sơ đồ để xây dựng các vòng băm

từ một mật mã khối Theo cách sau, chúng tôi viết Y = Ez (, Y), cho mật mã khối m-bit E với khóa k-bit, nghĩa là bản mã m-bit Y được tính từ m-bit plaintext X và k-bit key Z Dựa trên thảo luận trong phần trước, chúng em xem xét chỉ các cuộc tấn công vào hàm băm vòng hoặc tương đương, các cuộc tấn công vào hàm băm nghiêng chức năng tăng cường MD

h(H i-1 ,M i ) = E Mi (Hi-1) H i-1

Sơ đồ DM với tăng cường MD thường được coi là an toàn nếu mật mã khốikhông có điểm yếu đã biết, thì không có cuộc tấn công nào tốt hơn các cuộc tấncông brute- force đã biết, tức là, cuộc tấn công mục tiêu bắt đầu tự do vào h có độphức tạp là 2m và cuộc tấn công va chạm bắt đầu tự do trên h có độ phức tạp 2m/2

Một hàm vòng băm m -bit được đề xuất sử dụng mật mã khối với m –bitkhối và khóa 2m -bit:

Phương pháp này dựa trên mật mã khối với chiều dài khối m và chiều dàikhóa k = 2m Đối với mật mã như vậy với k = 2 m , chúng ta sẽ viết Y = EZa,Zb(X)nghĩa là bản mã m -bit được tính từ bản rõ m –bit X và hai khóa con m –bit Za và

Zb Hàm vòng băm được đề xuất được đưa ra bởi

h(H i-1 , M i ) = E Hi-1,Mi (H i-1 )

và được minh họa như sau

8

Trang 15

3.2 Xây dựng các hàm vòng băm 2m-bit

Khi chiều dài khối m của một mật mã khối là 64, đó là trường hợp của nhiềuthực tế mật mã khối, người ta có thể lấy một hàm băm lặp lại 64 bit bằng cách sửdụng sơ đồ DM Tấn công va chạm brute- force "đối với bất kỳ hàm băm 64-bitnào có độ phức tạp là 232 quá nhỏ trong nhiều ứng dụng Vì vậy, một số nỗ lực đãđược thực hiện để xây dựng một hàm băm 2 m -bit dựa trên một khối m –bit mật

mã bằng cách sửa đổi lược đồ DM có vẻ an toàn Điều này sẽ được xem xét trongcác phần sau

3.3 Một nguyên tắc để đánh giá các hàm vòng băm và 4 cuộc tấn công vàohàm băm 2m-bit

Áp dụng bất kỳ phép biến đổi đảo ngược đơn giản nào theo cả hai hướngcho đầu vào và đến đầu ra của hàm vòng băm tạo ra một hàm vòng băm mới vớibảo mật giống như bản gốc Đối với một mật mã khối có độ dài khối bằng độ dàikhóa, nó theo sau từ nguyên tắc rằng hàm vòng băm 2 của lược đồ DM có cùng độbảo mật như hàm vòng băm sau được đề xuất trong

m -bit mới H i và G i được tính từ hai giá trị trước đó

m -bit giá trị H và G và từ hai khối bản⊕ m -bit⊕L và N như sau

i Li Ni i-1 i-1 ii-1i-1

G i = E Li⊕Hi-1 (N i G i-1 ) N i H i-1 Gi-1

Ngày đăng: 03/12/2022, 09:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w