BÁO cáo NGHIÊN cứu tìm HIỂU về HASH FUNCTIONS dựa TRÊN BLOCK CIPHERS

22 13 0
BÁO cáo NGHIÊN cứu tìm HIỂU về HASH FUNCTIONS dựa TRÊN BLOCK CIPHERS

Đ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

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 tồn thơng tin Nhóm 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 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 tồn thơng tin Nhóm 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 MỤC LỤC MỤC LỤC iii LỜI MỞ ĐẦU vi Chương Giới thiệu Chương 2: Các hàm băm công phát lại .2 Chương 3:Hàm Băm dựa Mã Khối .8 MỞ ĐẦU Tổng quan, hàm băm lặp lại dựa vào mã hóa khối xử lý Năm công vào hàm băm lặp lặp lại vòng băm chúng xây dựng Sự khôn ngoan việc tăng cường hàm băm cách hạn chế block cuối thông điệp băm nhấn mạnh Các sơ đồ để xây dựng vòng băm m-bit 2m-bit nghiên cứu Cách chủ yếu để để đánh giá sức mạnh vòng băm dùng phép toán đơn giản (trong hai phân đoạn) cho phép biến đổi đảo ngược cho đầu vào đầu vòng băm tạo vòng băm với cấp độ bảo mật Bằng cách áp dụng nguyên tắc này, bốn cơng vào ba chức vịng băm 2m bit đề xuất trước triển khai Cuối cùng, ba vịng băm mã hóa khối m-bit với khóa 2m-bit đề xuất PHẦN 1: GIỚI THIỆU Bản báo cáo cung cấp cho người đọc thông tin cách đầy đủ hàm băm có cách lặp lại hàm vòng Trong phần 2, xem xét cơng xảy hàm băm lặp lặp lại, xem xét mối quan hệ tính bảo mật hàm băm lặp lại tính bảo mật vịng băm nhằm tinh hoa việc tăng cường sức mạnh cho hàm băm cách cuộn block cuối thông điệp để băm Trong phần 3, ta xem xét hàm băm dựa vào mã hóa khối (hash functions based on block ciphers) Đặc biệt, ta xét đến vấn đề xây dựng vòng băm m-bit vòng băm 2m-bit từ mật mã khối m-bit Một nguyên tắc thức hóa để đánh giá sức mạnh hàm vòng băm việc áp dụng phép biến đổi đảo ngược đơn giản mặt tính tốn (trong hai phân đoạn) cho đầu vào đầu vòng băm tạo vòng băm với mức độ bảo mật Để chứng minh nguyên tắc này, thực bốn công vào ba vịng băm 2m-bit đề xuất trước Cuối cùng, vòng băm dựa mật mã khối m-bit với khóa 2m-bit đề xuất Các hàm băm công phát lại Hàm băm ánh xạ thực dễ dàng từ tập hợp tất chuỗi nhị phân có độ dài tối thiểu định lớn đến tập hợp chuỗi nhị phân có độ dài cố định Trong ứng dụng mật mã, hàm băm sử dụng chương trình chữ ký số chương trình cung cấp tính tồn vẹn liệu (ví dụ: để phát việc sửa đổi thông báo) Hàm băm phát lại hàm băm Hash (-) xác định hàm tính tốn dễ dàng h (-,-) từ hai chuỗi nhị phân có độ dài tương ứng m đến chuỗi nhị phân có độ dài m theo cách thông báo M = ( M 1+ M +… + M n ) Mi có độ dài l, băm thành giá trị băm H = Hn có độ dài m tính tốn đệ quy Hi = h(Hi-1 , Mi ) i = 1,2, ,n (1) h giá trị ban đầu định Chúng ta viết M = Hash (H0, M) để thể rõ ràng phụ thuộc vào H Hàm h gọi hàm băm vòng Việc xây dựng đệ quy hàm băm Merkle gọi “phương pháp meta” Đối với liệu thơng báo có tổng độ dài tính bit khơng phải bội số l, người ta áp dụng "Padding" (hiểu nơm na khoảng đệm) xác định cho thông báo băm (1) để tăng tổng độ dài lên bội số l Đối với hàm băm phát lại, phân biệt công sau: Tấn công mục tiêu ( Target attack ): Cho H M tìm M’ M’ ≠ M Hash(H0 , M’) = Hash(H0 , M) Tấn công mục tiêu khởi động tự (Free-start target attack ): Cho H M tìm H '0 M’ cho ( H '0 ,M ) ≠ (H0 , M ) Hash( H '0 , M’) = Hash(H0 , M) Tấn công va chạm ( Collision attacks): Cho H 0, tìm M M’ cho M’ ≠ M Hash(H0 , M’) = Hash(H0 , M) Tấn công va chạm bán tự ( Semi-free-start collision attack ): Tìm H 0, M M’ cho M’ ≠ M Hash(H0 , M’) = Hash(H0 , M) Tấn công va chạm khởi động tự ( Free-start collision attack ): Tìm H 0, H '0 ,M M’ cho ( H '0 ,M ) ≠ (H0 , M ) Hash( H '0 , M’) = Hash(H0 , M) Nhận xét: Trong ứng dụng mà H0 định cố định, công 2, “các công thực sự” Điều giá trị ban đầu H0 sau phần tích hợp hàm băm nên giá trị băm tính từ giá trị ban đầu khác không chấp nhận Tuy nhiên, người gửi tự lựa chọn / thay đổi H 0, cơng 2, cơng thực sự, tùy thuộc vào cách mà hàm băm sử dụng Lưu ý công khởi động tự nửa tự khơng khó công mà H0 định trước Đối với hàm băm m-bit, công mục tiêu brute-force, người ta chọn ngẫu nhiên M ’cho đến 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 giá trị băm Nó theo sau từ " birthday argument" thông thường cơng va chạm bruteforce u cầu khoảng 2m/2 phép tính giá trị băm Đặc biệt, hàm băm trịn l ≥ m để đạt tất giá trị băm m với tệp tin khối, công mục tiêu brute-force u cầu khoảng 2m tính tốn hàm vịng h công va chạm brute-force yêu cầu khoảng m/2 phép tính hàm vịng h Chúng ta nói tính bảo mật tính tốn hàm băm lý tưởng khơng có thiếu hụt tốt brute force Trong phần thảo luận sau đây, xem xét số mối quan hệ tính bảo mật hàm băm lặp lại độ mạnh hàm vịng băm Bằng cơng vào hàm vịng băm, có nghĩa cơng tất thơng điệp liên quan chứa khối Ví dụ, cơng mục tiêu hàm vịng h có nội dung: cho H M1, tìm M '1 cho M '1 ≠ M1 h (H0, M '1) = h (H0, M1) Khi công mục tiêu vào hàm vòng tạo M '1 , sau đó, cách 'đính kèm' khối thơng báo M 2, , Mn thông báo cho vào M '1 , người ta đạt thành công công mục tiêu vào hàm băm phát lại.Tương tự đối số giữ cho kiểu công khác Mệnh đề Đối với hàm băm phát lại, công vào hàm vịng ngụ ý công loại vào hàm băm lặp với độ phức tạp tính tốn Cần lưu ý ngược lại phát biểu Định lý nói chung khơng Có thể có công vào hàm băm lặp lại dễ dàng cơng vào hàm vịng mình, ví dụ sau cho thấy: Ví dụ (Tấn công thông điệp dài.) Đối với hàm băm phát lại m-bit, cho trước thông báo khối n M = (M1, M2, , Mn), có công mục tiêu xảy 2m m/2 C= n + n n ≤2 2× 2m /2 n>2m /2 { tính tốn hàm làm trịn ( kết cho n ≤ 2m /2 Winternitz Bằng chứng : Đầu tiên xem xét trường hợp n ≤ 2m /2 Với m cho, tính Hi = h (Hi-1, Mi) cho i = 1,…,n lưu trữ giá trị Sau ¿ ¿ tính H* = h (H0, M ) lặp lặp lại với M lựa chọn ngẫu nhiên Sau 2m tính toán giá trị cho H*, xác suất để H* = H với số i, ≤ i ≤ n n m n – [(1 – ) ¿ ¿ n] ¿ = – (1 – 2−m )2 m ≈ – e−1 ≈ 0.63 , −m điều cho thấy thường đủ 2m phép tính hàm làm tròn n ¿ Thông báo M' = ( M 1, M i+1,…, M n ) băm đến giá trị H với thông báo M kết 2m + n Xác suất để M’ = M không đáng kể n tính tốn lưu trữ H 1, H 2,…, H Khi 2m /2 lựa hàm vòng khoảng Đối với n > 2m /2 ¿ chọn ngẫu nhiên M tạo “trận đấu” số H* với số H i , ≤ i ≤ 2m /2 với xác suất khoảng 0,63 Đối với hàm băm phát lại, người ta ln thực công khởi động tự "Không đáng kể" sau Ví dụ Trivial free-start attacks (Các cơng khởi động tự không đáng kể ): Hãy xem xét thông báo M = ( M 1, M 2) băm thành H với giá trị ban đầu H Sau đó, giá trị ban đầu H = h ( H 0, M ), thông báo “bị bỏ bớt” M’ = M băm tới giá trị H = h ( H 1, M 2) Đó cơng mục tiêu khởi động tự ln thực thông báo chứa nhiều khối Tương tự, người ta thực cơng va chạm khởi động tự không đáng kể m /2 Ví dụ A trivial semi-free-start collision attack based on a ‘ fixed point’ ( Một công va chạm bán tự không đáng kể dựa điểm cố định ): Nếu hàm băm vòng h có "điểm cố định" dễ nhận biết, tức cách người ta tìm thấy (H, M) H = h (H, M), sau có cơng va chạm bán tự khơng kể từ đó, bắt đầu với giá trị ban đầu H = H, thông báo "khác biệt" M = M M'= (M, M) băm giá trị H Lưu ý công khởi động tự bán tự thông thường cơng "tin nhắn dài" mơ tả ba ví dụ trên, công phá vỡ hàm băm lặp lại mà khơng phá vỡ hàm vịng Các cơng dựa thực tế là, hàm băm phát lại có dạng (1), kẻ cơng lợi dụng thực tế thơng báo giả mạo có độ dài khác với độ dài thơng điệp hãng cho Vấn đề khắc phục cách tăng cường hàm băm lặp lặp lại sau đây, đề xuất cách thận trọng Merkle Damgaard : Tăng cường Merkle-Damgaard (Tăng cường MD) Đối với hàm băm phát lại, định khối cuối M n "thông báo" M = ( M 1, M ,…, M n ) băm đại diện cho Chiều dài "thông báo " tính bit, tức độ dài phần không đánh dấu n-1 khối Đề xuất Chống lại công bắt đầu tự (mục tiêu va chạm), hàm băm lặp lặp lại với tăng cường MD, Hash MD, có độ bảo mật tính tốn gần giống hàm băm vịng Trong thảo luận trước, xem xét tính bảo mật hàm băm phát lại tính bảo mật hàm vịng trước công loại Bây xem xét cách liên hệ công mục tiêu khởi động tự "không thực" với công mục tiêu "thực" Kết sau cho thấy rằng, hàm băm lặp phát lại, “ nghịch đảo ngẫu nhiên ”của hàm băm vịng tìm thấy với mức tối đa lý tưởng khoảng m tính tốn, ln tồn công mục tiêu hàm băm tốt công mục tiêu brute-force Đề xuất ( Cuộc công mục tiêu gặp cách “làm việc trở lại”.) Cho HashMD hàm băm phát lại m-bit với tăng cường MD với hàm vòng h Nếu hầu hết H khoảng h, cần khoảng n phép tính h để tìm nghiệm (H', M') H = h (H', M') mà H' xuất chọn ngẫu nhiên phần thông báo không bị giới hạn chứa hai khối, tức n - ≥ 2, tồn công mục tiêu vào Hash MD khoảng x m +5 lần tính tốn h Bằng chứng Với M H0 cho, cho kết hai lần lặp là: H1 = h(H0, M1) H2 = h(H1, M2) Chúng ta cách tìm hai khối thơng báo ( M '1, M '2) băm thành H2 công “gặp giữa” Sau thay hai khối (M 1,M2) thông điệp M cho ( M '1, M '2) , thu thơng điệp M’có độ dài, M băm tới H Đầu tiên, tính G1 = h (H0, M '1) cho sau tìm m +3 m +5 M '1 chọn ngẫu nhiên; cặp (G'1, M '2) cho H2 = h (G'1, M '2) G'1về xuất chọn ngẫu nhiên Cuộc công không thành công vài G G'1 nhận giá trị Do đó, cơng thành công với xác suất – [(1 – 2−m ) ¿ ¿ m+ 2 ] m+ −m m −1 ¿ = – (1 – ) ≈ – e ≈ 0.63 , sau từ kiện cho thấy xác suất chọn M '1 cho G1 không G'1 – 2−m , có m +5 hội chọn M '1 cho G1 “ bỏ lỡ ”một G'1 cụ thể; có m+3 G'1 bỏ lỡ Cả phép tính "chuyển tiếp" cho giá trị lựa chọn độc lập giá trị tính tốn G1 phép tính "ngược" cho giá trị tính tốn G'1, m+3 thực phép tính hàm vịng h Phương pháp sử dụng chứng việc công hàm băm lặp lại cách “làm việc ngược lại” sử dụng để công số hàm băm lặp lại đề xuất Kết cho thấy hàm băm vịng khơng có bảo mật tính tốn lý tưởng chống lại cơng mục tiêu bắt đầu tự do, hàm băm phát lại khơng thể đạt bảo mật tính tốn lý tưởng chống lại cơng mục tiêu Mệnh đề 2, với lập luận sử dụng để chứng minh Mệnh đề 3, ngụ ý: Mệnh đề Giả sử phần không bị giới hạn thơng báo phải chứa hai khối, tức là, n - ≥ hàm băm lặp lại với tăng cường MD, HashMD (.), có tính bảo mật tính tốn lý tưởng chống lại công mục tiêu hàm vịng băm h (.,.) có bảo mật tính tốn lý tưởng chống lại mục tiêu khởi động tự 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 tốn lý tưởng chống lại cơng mục tiêu bắt đầu tự Sau đó, Đề xuất cho thấy Hash MD (.) có mức bảo mật lý tưởng chống lại công mục tiêu bắt đầu tự Nhưng công mục tiêu mà không bắt đầu tự không dễ dàng công mục tiêu bắt đầu tự để Hash MD (.) có khả bảo mật tính tốn lý tưởng chống lại công mục tiêu Ngược lại, hàm băm m-bit h, công mục tiêu bắt đầu tự cần 2m phép tính, Mệnh đề ngụ ý cơng mục tiêu vào HashMD với 2m phép tính Từ hai mệnh đề trên, thấy tăng cường MD tạo hàm băm lặp lại an tồn từ hàm vịng an tồn Đặc biệt, khởi động tự không đáng kể v, công khởi động bán tự cơng mục tiêu tin nhắn dài ví dụ sử dụng để công hàm băm phát lại có tăng cường MD Những cân nhắc gợi ý nguyên tắc hiển nhiên cho hàm băm phát lại, hàm băm phát lại nên sử dụng với tăng cường MD Trong thảo luận sau đây, tính bảo mật hàm băm lặp lặp lại xem xét, chúng tơi ln muốn nói đến tính bảo mật hàm băm với tăng cường MD Do Đề xuất Đề xuất người ta thường mong muốn hàm băm đủ mạnh để cung cấp khả bảo vệ chống lại công bắt đầu tự do, vấn đề xây dựng hàm băm an toàn giảm xuống vấn đề xây dựng hàm băm vịng an tồn chống lại công khởi động tự xem xét phần Hàm Băm dựa mã khối Trong thảo luận sau đây, chúng em xem xét sơ đồ để xây dựng vòng băm từ mật mã khối Theo cách sau, viết Y = Ez (, Y), cho mật mã khối m-bit E với khóa k-bit, nghĩa mã m-bit Y tính từ m-bit plaintext X k-bit key Z Dựa thảo luận phần trước, chúng em xem xét công vào hàm băm vòng tương đương, công vào hàm băm nghiêng chức tăng cường MD 3.1 Một số hàm băm vòng m-bit Lược đồ Davies-Meyer (DM) đề xuất độc lập Davies Meyer Lược đồ sử dụng với mật mã khối Khối thông báo M i băm bước lược đồ có độ dài l độ dài khóa k mật mã khối Hàm băm vịng đưa cơng thức : h(Hi-1,Mi) = EMi(Hi-1)⊕ Hi-1 Sơ đồ DM với tăng cường MD thường coi an toàn mật mã khối khơng có điểm yếu biết, khơng có cơng tốt công brute-force biết, tức là, công mục tiêu bắt đầu tự vào h có độ phức tạp 2m công va chạm bắt đầu tự 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 –bit khối khóa 2m -bit: Phương pháp dựa mật mã khối với chiều dài khối m và chiều dài khóa k = 2m . Đối với mật mã với k = 2 m , viết Y = EZa,Zb(X) nghĩa là bản mã m -bit 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 đề xuất đưa h(Hi-1, Mi) = EHi-1,Mi (Hi-1) minh họa sau 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ã khối 64, trường hợp nhiều thực tế mật mã khối, người ta lấy hàm băm lặp lại 64 bit cách sử dụng sơ đồ DM Tấn công va chạm brute-force "đối với hàm băm 64-bit có độ phức tạp 232  nhỏ nhiều ứng dụng. Vì vậy, số nỗ lực thực để xây dựng một hàm băm 2 m -bit dựa một khối m –bit mật mã cách sửa đổi lược đồ DM an toàn. Điều xem xét phần sau 3.3 Một nguyên tắc để đánh giá hàm vịng băm cơng vào hàm băm 2m-bit Áp dụng phép biến đổi đảo ngược đơn giản theo hai hướng cho đầu vào đến đầu hàm vòng băm tạo hàm vòng băm với bảo mật giống gốc Đối với mật mã khối có độ dài khối độ dài khóa, theo sau từ nguyên tắc hàm vòng băm lược đồ DM có độ bảo mật hàm vịng băm sau đề xuất trong  h(Hi-1, Mi) = EHi-1 (Mi)⊕ Mi Hàm vịng băm khác với hàm cách hoán đổi khối đầu vào Hi-1 và Mi  3.3.1 Sơ đồ PBGV (Preneel-Boselaers-Govaerts-vandewalle) Trong lược đồ này, sử dụng khối m –bit mật mã với khóa m-bit,  một hàm băm 2m-bit giá trị H = (H n,Gn) tính từ tin 2 mn –bit (L1, N1, ,Ln,Nn) và giá trị 2m-bit ban đầu (H0,G0) Trong vịng, hai giá trị m -bit mới H i và G i được tính từ hai giá trị trước m -bit giá trị Hi-1 và Gi-1 từ hai khối tin m -bit Li và Ni sau Hi = ELi⊕Ni(Hi-1+Gi-1)⊕Li⊕Hi-1⊕Gi-1 Gi = ELi⊕Hi-1(Ni⊕Gi-1)⊕ Ni⊕Hi-1⊕  Gi-1 Với i= 1, 2, , n Hàm vòng cho lược đồ PBGV tạo cặp đầu ra (h, g) từ đầu vào (h0,g0,l,n) theo cách h = El⊕n( h0  ⊕g0)  ⊕l  ⊕h0  ⊕g0 g = El⊕h0(n⊕ g0) ⊕ n  ⊕h0⊕ g0  Bằng cách áp dụng phép biến đổi đảo ngược đơn giản đầu đầu vào, ta nhận hàm làm trịn tính (h,f) từ đầu vào (h’0,g’0,l’,n’) cách: h = El’(h’0) ⊕l’⊕n’⊕h’0 f = El’⊕h’0⊕g’0(g’0) ⊕El’⊕ (h’0) ⊕ l’ Một công mục tiêu bắt đầu tự vào chức vòng PBGV với độ phức tạp khoảng 2m/2:  Chọn số c0 tùy ý  Đối với h đã cho , tính a = El’(h’0)⊕l’ cho 2m/2 giá trị chọn ngẫu nhiên của h’0 tương ứng l’ h’0⊕l’=c0 Đối với f đã cho , tính a* = Er(g’0)⊕f cho 2m/2 giá trị chọn ngẫu nhiên của g’0 tương ứng r g’0⊕r=c0 Một cơng mục tiêu vào chức vịng PBGV với độ phức tạp khoảng 2 m :  Chọn ngẫu nhiên l’ tính: a = El’(h’0)⊕l’ n’ = a⊕h’0⊕h r = l’⊕h’0⊕g’0 = l’⊕h’0⊕g0⊕n’ g’0 = Dr(a⊕f) 3.3.2 Lược đồ Quisquater-Girault (QG-I) Chương trình QG-I dựa một m -bit mã khối với khóa mbit. Giá trị băm 2m –bit (Hn , Gn) được tính từ tin 2mn-bit (Lj,Ni,i2,JV2, ,Ln,Nn) giá trị 2m-bit ban đầu (H0,G0)  Trong vịng, hai giá trị m -bit mới H i và G i được tính từ hai giá trị m -bit trước đó Hi-1 và Gi-1 và từ hai thơng báo m –bit khối Li và Ni sau: Wi = ELi(Gi-1⊕Ni) ⊕Ni⊕Hi-1 Hi = Wi⊕Gi-1 Gi = ENi(Wi⊕Li) ⊕Hi-1⊕Gi-1⊕Li Với i= 1,2, , n Hàm vòng lược đồ QG-I tạo cặp đầu ra (h, g) từ đầu vào (h0,g0,l,n)  theo cách h = El⊕n(h0⊕g0) ⊕l⊕h0⊕g0 g =El⊕h0(n⊕g0) ⊕n⊕h0⊕g0 cặp (h,f) = (h,h⊕g) xác định h = El(g0⊕n) ⊕n⊕h0⊕g0 f = h⊕g = En(El(g0⊕n) ⊕n⊕h0⊕l) ⊕El(g0⊕n)⊕l⊕n 10 Một công mục tiêu bắt đầu tự lược đồ QG-I với độ phức tạp 2m/2 Gọi c m-tuple cố định Chọn ngẫu nhiên giá trị a chọn n cho a⊕ n = c Sau đó, giá trị cho trước f, tính h’ = a ⊕Dn (a ⊕f): Lặp lại trình 2m/2 lần để lấy 2m/2 giá trị cho (h’0, n) với giá trị chọn ngẫu nhiên cho h’0 Chọn ngẫu nhiên l tính h*0 = h⊕ (l ⊕c) ⊕ Dl ⊕ (l ⊕c): Trong 2m = phép tính, nhận 2m/ giá trị cho (h*0, l) với giá trị chọn ngẫu nhiên cho h’0 Lưu ý h*0 h0 khối m-bit để số h* số h0 thu đượcnhư nhận giá trị với xác suất khoảng 0,63 Do đó, có thểtìm (h’0, h*0,l, n) cho h’0 = h*0 3.3.3 Hàm LOKI Double Block Hash (DBH) Mật mã khối LOMI, đề xuất [2], mật mã khối 64 bit giống DES với khóa 64 bit Trong [2], hàm itcratcd Double Block Ilash (DDII) 128 bit dựa mật mã LOKI đề xuất, thực tế, lược đồ sử dụng cho mật mã khối m-bit có khóa n-bit Trong LOKI TIHII, giá trị băm 2mm bit (H ,,, G,) tính từ thông báo 2mn bit (Li, N1, Gz, Nzr , L ,,, Nn) giá trị ban đầu 2m bit ( Il0, Co) Trong vòng, hai giá trị m-bit / I G, tính từ hai giá trị rn-bit trước G, -i từ hai khối thông báo mbit L N, sau: Hàm LOKI Double Block Hash (DBH) 11 for i = 1,2 , n Hàm vong LOKI DBH bắt nguồn từ hàm roud băm lược đồ QG-I (8) cách bổ sung bitwise khối giá trị băm trước (H G) vào khối thông báo (L N) để thu đầu vào cho hai mã hóa LOKI Điều thực để tránh số công bắt nguồn từ "khóa yếu" mật mã Bằng cách áp dụng nguyên tắc đánh giá bảo mật chúng tôi, nhận công mục tiêu bắt đầu tự sau hàm vòng OKI DBH có độ phức tạp khoảng ^ (m / 2) Hàm vòng cho LOKI DBH tạo cặp đầu (h, g) từ đầu vào (ho, go, l, n) theo cách Bằng cách áp dụng chuyển đổi cặp đầu LOKI DBH áp dụng phép chuyển đổi đầu vào LOKI DBH (ho, go, I, n), nhận hàm minh họa Hình tính tốn (h, J) từ đầu vào (ho, go, I ', n') theo cách 12 Một công mục tiêu bắt đầu tự LOKI DBH với độ phức tạp Sau đây, khẳng định rằng, (h, f) cho trước, người ta tìm thấy, khoảng 2 "'' tính tốn mã hóa cho mật mã khối, giải pháp for (ho, go, I, n) thỏa mãn (10) cách công "gặp mặt giữa" Bởi phép biến đổi (13) (14) dễ tính tốn dễ đảo ngược, tuân theo từ Nguyên tắc việc tìm nghiệm ho, go, I, n) (12) cho (h, mặt tính tốn giống việc tìm nghiệm (ho, Z ', n') (15) cho (h , f) Điều thực khoảng lần mã hóa Chọn giá trị tùy ý cho Đối với h cho I 'đã chọn, ngôpute h, h n' E (n ') cho giá trị chọn ngẫu nhiên n', Đối với h, f cho f 'đã chọn, tính NS; (h / ') h i' cho giá trị "'' chọn ngẫu nhiên r n ho Xác suất để số số 11; nhận giá trị khoảng 0,63 Đối với ho hi, tính tốn r n ' / i ,, thu nghiệm (ho, g0, f', n ') cho (15) Nhận xét Chúng ta đưa ba công mục tiêu bắt đầu tự ba hàm băm vịng phần Các cơng mục tiêu "thực" (với giá trị ban đầu định) thường khó khăn Ví dụ, rn 64 bit, công mục tiêu vào hàm băm 128 bit LOKI DBII thu cách kết hợp công với công sử dụng chứng minh Định lý khoảng 23 280 phép tính Một kết luận tương tự áp dụng cho hàm băm QC-I schernc 13 3.4 Sự phức tạp công biết vào hàm băm 2m-bit Chúng xem xét hàm băm lặp lại 125 bit biết dựa hai cách sử dụng mật mã khối 64 bit rn với độ dài khóa k 64 k 56 vòng Tất sơ đồ coi sửa đổi nhỏ hàm băm vòng 64-bit sơ đồ DM Những lời phàn nàn công biết vào hàm băm liệt kê Bảng Chúng giả định tất hàm băm lặp lặp lại sử dụng với MD- củng cố mật mã khối biết độ khó (chẳng hạn khóa yếu) 14 3.5: Các phương án đề xuất cho mật mã khối có k = 2m Nghiên cứu hàm băm đề xuất trước cho thấy khónhưng khơng phải khơng thể-để xây dựng hàm vòng băm 2m-bit với bảo mật theo thứ bậc lý tưởng "tiêu hóa" vịng m bit thông báo hai lần sử dụng mật mã khối m-bit với khóa m-bit Tuy nhiên, mật mã khối m-bit với khóa 2m bit khả dụng, sau có nhiều khả để tạo hàm băm trịn 2m-bit an tồn Sau đây, chúng em đề xuất hai hàm băm 2m bit hàm làm tròn sử dụng mật mã khối m-bit với khóa 2m-bit cho an tồn Tandem DM: Chúng gọi hàm băm 2m bit đề xuất sơ đồ Tandem DM dựa việc xếp tầng hai sơ đồ DM (2) Vòng chức lược đồ Tandem DM thể Hình 15 Hình 6: Hàm vịng băm 2m-bit Tandem DM dựa mật mã khối m-bit với khóa 2m bit Các giá trị m-bit Hi Gi, lấy từ giá trị m-bit trước IWO Hi-1 G(i-1) từ khối thông báo m-bit sau: G biểu thị mã bit G Hình 7: Hàm băm trịn 2m-bit Abreast DM dựa mật mã khối m-bit với khóa 2m bit Hình trịn đầu vào cho mã hóa thấp theo chiều bit bổ sung Nhận xét 1: Đề án Tandem DM Abreast DM xây dựng việc xem xét sau Hàm tròn h bao gồm hai hàm h1 h2 Cả hai có đầu vào giống nhau, đó, để cơng h ngụ ý người ta phải công đồng thời hi h2 Nếu chức h h2 'khác nhau' đến mức công vào chức không giúp việc cơng chức khác h1 h2 tương đương DM-scheme, mong đợi cơng vào h có độ phức tạp tương đương với độ phức tạp công vào h1 h2 16 Trong Tandem DM Abreast DM đề xuất, chức phụ h1 h2 vòng cung chọn “khác biệt” tốt Lược đồ Abreast DM cung cấp hàm băm 2m bit mạnhnhư DMscherne m-bit Các điều tra chúng em thời điểm khơng cho thấy điểm yếu hai hàm vịng băm 2m-bit đề xuất, tức chúng em khơng thể tìm thấy cơng tốt công brute-force mật mã giả định khơng có điểm yếu Tuy nhiên, nên DM Tandern Abreast DM sử dụng hai mã hóa khối m-bit cho khối m bit thơng báo để tính giá trị băm cuối có độ dài 2m bit END 17 ...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 tồn thơng tin Nhóm Sinh viên thực hiện: Trương Văn... tăng cường sức mạnh cho hàm băm cách cuộn block cuối thông điệp để băm Trong phần 3, ta xem xét hàm băm dựa vào mã hóa khối (hash functions based on block ciphers) Đặc biệt, ta xét đến vấn đề xây... attacks): Cho H 0, tìm M M’ cho M’ ≠ M Hash( H0 , M’) = Hash( H0 , M) Tấn công va chạm bán tự ( Semi-free-start collision attack ): Tìm H 0, M M’ cho M’ ≠ M Hash( H0 , M’) = Hash( H0 , M) Tấn công

Ngày đăng: 16/01/2022, 05:54

Từ khóa liên quan

Mục lục

  • Phần 1: Giới thiệu

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan