1. Trang chủ
  2. » Công Nghệ Thông Tin

Nguyễn Hoàng Cương: Tài liệu bảo mật và khai thác dữ liệu_7 docx

24 150 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

Định dạng
Số trang 24
Dung lượng 213,25 KB

Nội dung

Vietebooks Nguyn Hong Cng chơng hm hash 7.1 chũ kí v hm hash Bạn đọc thấy sơ dồ chữ kí chơng cho phép kí điện nhỏ.Ví dụ, dùng DSS, điện 160 bit đợc kí chữ kí dài 320 bít Trên thực tế ta cần điện dài nhiều Chẳng hạn, tài liệu pháp luật dài nhiều Megabyte Một cách đơn giản để gải toán chặt điện dài thành nhiều đoạn 160 bit, sau kí lên đoạn độc lập Điều tơng tự nh mà chuôĩ dài rõ cách mà kí tự rõ độc lập khoá (Ví dụ: chế độ ECB DES) Biện pháp có số vấ đề việc tạo chữ kí số Trớc hết, với điện dài, ta kết thúc chữ kí lớn ( dài gấp đôi điện gốc trờng hợp DSS) Nhợc điểm khác sơ đồ chữ kí an toàn lại chậm chúng dùng pháp số học phức tạp nh số mũ modulo Tuy nhiên, vấn đề nghiêm trọng với phép toán búc điện đà kí bị xếp lại đoạn khác nhau,hoặc số đoạn chúng bị loại bỏ điện nhận đợc phải xác minh đợc Ta cần bảo vệ nguyên vẹn toàn điện điều thực đợc cách kí độc lập mẩu nhỏ chúng Giải pháp cho tất vấn đề dùng hàm Hash mà khoá công khai nhanh Hàm lấy điện có độ dài tuỳ ý tạo tóm lợc thông báo có kích thớc qui định (160 bit dùng DSS) Sau tóm lợc thông báo đợc kí Vơi DSS, việc dùng hàm Hash đợc biểu diễn trê hình 7.1 Khi Bob muốn kí điện x, trớc tiên xây dựng bnr tóm lợc thông báo z = h(x) sau tính y = sigK (z ) Bob truyền cặp ( x, y) kênh Xét thấy thực xác minh (bởi ) cách trớc hết khôi phục tóm lợc thông báo z =h (x) hàm h công khai sau kiểm tra xem verk (x,y) có = true, hay không Trang Vietebooks Nguyn Hong Cng Hình 7.1.Kí tóm lợc thông báo Bức điện :x độ dài tuỳ ý tóm lợc thông báo:z = h (x) 160 bit ↓ 320 bit Ch÷ kÝ y = sig K(z) 7.2 hm hash không va chạm Chúng ta cần ý rằng,việc dùng hàm hash h không làm giảm an toàn sơ đồ chữ kí tóm lợc thông báo đợc chữ kí điện Điều cần thiết h cần thoả mÃn số tinhs chất để tranh giả mạo Kiểu công thông thờng Oscar bắt đầu diện đợc kí hợp lệ (x, y), y =sigK(h (x)),(Cặp (x, y) điện đợc Bob kÝ tr−íc ®ã) Sau ®ã tÝnh z = h(x) thử tìm x x cho h(x) = h(x) Nếu Oscar làm đợc nh vậy, (x, y) điện kí hợp lệ, tức điện giả mạo Để tránh kiểu công này, h cần thoả mÃn tính không va chạm nh sau: Định nghĩa 7.1 Hàm hash h hàm không va chạm yếu cho trớc điện x, tiến hành mặt tính toán để tìm bøc ®iƯn x ≠ x’ cho h (x’) = h(x) Một công kiểu khác nh sau: Trớc hết Oscar tìm hai điện x x cho h(x) =h(x) Sau Oscar đa x cho Bob thyết phục Bob kí tóm lợc thông báo h(x) để nhận đợc y Khi đố (x,y) thông báo (bức điện ) giả mạo hợp lệ Đây lí đa tính chất không va chạm khác Định nghĩa 7.2 Hàm Hash h không va chạm mạnh khả tính toán để tìm điênk x x cho x x’ vµ h(x) = h(x’) Trang Vietebooks Nguyễn Hồng Cng Nhận xét rằng: không va chạm mạnh bao hàm va chạm yếu Còn kiểu công thứ 3: Nh đà nói phần 6.2 việc giả mạo chữ kí tóm lợc thông báo z ngẫu nhiên thờng xảy với sơ đồ chữ kí Giả sử Oscar tính chữ kí tóm lợc thông báo z ngẫu nhiên nh Sau tìm x cho z= h(x) Nếu làm đợc nh (x,y) điện giả mạo hợp lệ Để tránh đợc công này, h cần thoả m·n tÝnh chÊt mét chiỊu (nh− hƯ m· kho¸ công khai sơ đồ Lamport) Định nghĩa 7.3 Hàm Hash h lµ mét chiỊu nÕu cho tr−íc mét tóm lợc thông báo z, thực mặt tính toán để tìm điện x cho h(x) = z B©y giê ta sÏ chøng minh rằng, tính chất không va chạm mạnh bao hàm tính chiều phản chứng Đặc biệt ta chứng minh rằng, dùng thuật toán đảo với hàm Hash nh chơng trình (giả định ) thuật toán xác suất Las Vegas để tìm va chạm Sự rút gọn thực với giả thiết yếu kích thớc tơng đối vïng vµ miỊn (domain and range) cđa hµm Hash Ta giả thiết tiếp hàm Hash h: XZ, X,Z tập hữu hạn X 2Z Đây giả thiết hợp lí :Nếu xem phần tử X đợc mà nh xâu bít có độ dài log2X phần tử Z đợc mà hoá nh xâu bít có độ dài log2X tóm lợc thông báo z = h(x) ngắn điện x bít (ta quan tâm đến tình vùng X vô hạn xem xét điện dài tuỳ ý Lập luận ta áp dụng cho tình này) Tiếp tục giả thiết ta có thuật toán đảo h, nghĩa có thuật toán A chấp nhận nh đầu vào tóm lợc thông báo zZ tìm phÇn tư A(z) ∈ X cho h(A(z)) = z Ta chứng minh địng lí dới đây: Định lí 7.1: Giả sử h: XZ hàm Hash, XvàZ hữu hạn X 2Z Cho A thuật toán đảo h Khi tồn thuật toán Las Vagas xác suất tìm đợc va chạm h với xác suất là1/2 Chøng minh : Trang Vietebooks Nguyễn Hoàng Cương XÐt thuật toán B đa hình 7.2 Rõ ràng B thuật toán xác suất kiểu Las Vegas hoạc tìm thấy va chạm, cho câu trả lời không Vấn đề lại ta phải tịnh xac suất thành công, Với x thuộc X, định nghĩa x x1 h(x) = h(x1) Dễ thấy rằng, quan hệ tơng đơng Ta định nghĩa: [x] = {x1X: x x1} Mỗi lớp tơng đơng [x] chứa ảnh đảo phần tử thuộc Z nên số lớp tơng đơng nhiều Z Kí hiệu tập lớp tơng đơng C Bây giả sử, x phần tử X đợc chọn bớc Với giá trị x này, có[x]giá trị x1 cho phép trở lại bớc [x]-1 giá trị x1 khác với x nh bớc thành công (Chú ý thuật thoán A biểu diễn lớp tơng đơng [x] đà chon bớc 1) Nh vậy, cho tr−íc lùa chän thĨ x∈X, x¸c st thành công ([x)-1/[x] Hình.7.2 Dùng thuật toán đảo A để tìm va chạm cho hàm Hash 1.chọn ssã ngÉu nhiªn x ∈X 2.TÝnh z=h(x) 3.Tinh x1= A(Z) if x1 ≠ x then x vµ x1 va chạm dới h (thành công) else Quit (sai) Xác suất thành công thuật toán B trung bình cộng tất lựa chon x có thể: P(thành công) = (1/⏐X⏐)∑x∈X(⏐[x]⏐-1)/⏐[x]⏐ = (1/⏐X⏐) ∑c∈C∑x∈C(⏐c⏐-1)/⏐c⏐ = 1/⏐X⏐∑c∈C(⏐c⏐-1) = (1/⏐X⏐) ∑c∈C⏐c⏐ - ∑ c∈C1 >= (⏐X -⏐Z⏐⏐) / ⏐X⏐ >= ((⏐X⏐ -Z)/2) /X = ẵ Nh vậy, ta đà xây dựng thuật toán Las Vegas có xác suất thành công nhÊt b»ng 1/2 Trang Vietebooks Nguyễn Hồng Cương V× thế, điều kiện đủ để hàm Hash thoả mÃn tính chất không va chạm mạnh bao hàm hai tính chất khác.Phần lại chơng ta quan tâm đến hàm Hash không va chạm mạnh 7.3 công ngày sinh nhật(birthday) Trong phần này, ta xác định điều kiện an toàn cần thít ch hàm Hash điều kiện phụ thuộc vào lực lợng tập Z (tơng đơng kích thớc bảng thông báo ).Điều kiện cần thiết nà rút t phơng pháp tìm kiếm đơn giản ác va chạm mà ngời ta đà biết đến dới tên công ngày sinh nhật (birthday phơng pháparradox), toán:một nhóm 23 ngời ngẫu nhiên, có ngời có ngày sinh trùng với xác suất là1/2.(Dĩ nhiên, cha phải nghịch lí,song trực giác đối lập xảy ra) Còn lí thuật ngữ công ngày sinh nhËt ” sÏ râ rµng ta tiÕp tuch trình bày Nh trớc đây, ta hÃy giả sử :h:XZ hàm Hash, X,Z hữu hạn X >=2Z.Địng nghĩa X = m vàZ = n.Không khó khăn nhận thấy rằng, có n va chạm vấn đề đằt cách tìm chúng Biện pháp đơn sơ chọn k phần tử ngẫu nhiên phân biÖt x1,x2… xk ∈X, tÝnh z1 = h(x1),1= t+2 Bây ta hÃy xem xét tình m = t+1 Cần dùng cấu trúc khác cho h Nh trớc đây, giả sử |x|=n>m Trớc hết ta mà x theo cách đặc biệt Cách dùng hàm f có định nghĩa nh sau: f(0) = f(1) = 01 Thuật toán để xây dựng h*(x)đợc miêu tả hình 7.5 Phép mà xy = y(x) đợc định nghÜa v−íc tho¶ m·n hai tÝnh chÊt quan träng sau: Trang 12 Vietebooks Nguyễn Hoàng Cương nÕu x x y(x) y(x) (tức x y(x) đơn ánh) Không tồn tạI hai chuỗi x x chuỗi z cho y(x)= z||y(x) Nói cách khác không cho phép mà hoá fpsstix phép mà khác ĐIều dễ dàng thấy đợc chuỗi y(x) bắt đầu 11 không tồn tạI hai số liên tiếp phần lạI chuỗi) Hình 7.5 Mở rộng hàm hash h thành h* (m = t+1) Gi¶ sư y = y1y2 yk = 11||f(x1)|| ||f(xn) g1 = h(01||y1) for i=1 to k-1 gi+1 = h(gi||yi+1) h*(x) = gk Định lý 7.4 Giả sử h: (Z2)n(Z2) hàm hash không va chạm mạnh Khi hàm h*: U (Z2)t(Z2)t đợc xây dựng nh hình 7.5 hàm hash không va i =m chạm mạnh Chứng minh: Giả sử ta tìm đợc x x cho h*(x)=h*(x’) KÝ hiƯu: vµ y(x) = y1y2 yk y(x’) = y’1y’2 y’l Ta xÐt hai tr−êng hỵp: Tr−êng hỵp 1: k=l Nh định lý 7.3 ta tìm thấy va chạm đỗi với h ta nhận đợc y = y song đIều lạI bao hàm x = x, dẫn đến mâu thuẫn Trờng hợp2: k l Không tính tổng quát ,giả sử l>k trờng hợp xử lý theo kiểu tơng tự Nếu giả thiết ta không tìm thấy va chạm h ,ta có dÃy phơng trình sau: Trang 13 Vietebooks Nguyễn Hoàng Cương yk = y’l yk-1 = y’l-1 y1 = yl-k+1 Song đIều mâu thuẫn với tính chất không posfixx nêu Từ ta kết luận h* hạm không va chạm Ta tổng kết hoá hai xây dựng phần số ứng dụng h cần thiết để tính h* theo định lý sau: Định lý 7.5 Giả sử h: (Z2)n(Z2) hàm hash không va chạm mạnh,ở m>=t+1 Khi tồn tạI hàm không va chạm mạnh h*: U (Z2)t(Z2)t i =m Số lần h ®−ỵc tÝnh −íc l−ỵng h* nhiỊu nhÊt b»ng : l +⎡ ⎢ n ⎤ nÕu m>=t+2 ⎣ m − t − 1⎥ ⎦ 2n +2 nÕu m= t+2 |x|=n 7.6 hàm hash dựa hệ mật Cho đến nay, phơng pháp đà mô tả để đa đến nhứng hàm hash hầu nh chậm ứng dụng thực tiễn Một biện pháp khác dùng hệ thống mà hoá bí mật có để xây dừng hàm hash Giả sư r»ng (P,C,K,E,D) lµ mét hƯ thèng mËt m· an toàn mặt tính toán Để thuận tiện ta gi¶ thiÕt r»ng P = C = K = (Z2)n.ë đâychọn n>=128 để xây ngăn chặn kiểu công ngày sinh nhật ĐIều loạI trừ việc dùng DES (vì độ dài khoá DES khác với độ dài rõ) Giả sử cho trớc xâu bit: x= x1||x2|| ||xk Trang 14 Vietebooks Nguyễn Hồng Cương ®ã xi ∈ (Z2)n, 1≤ i ≤ (nÕu sè bit x bội n cần chèn thêm vào x theo cách Chẳng hạn nh cách làm nục 7.5 Để đơn giản ta bỏ qua đIểm này) ý tởng bắt đầu giá trị ban đầu cố định g0 =IV sau ta xây dựng g1, ,gk theo quy tắc thiết lập : gi = f(xi,gi-1) f hàm kết hợp toàn phép mà hoá hệ mật đợc dùng Cuối ta định nghĩa tóm lợc thông báo h(x) =gk Vài hàm hash kiểu đà đợc đề xuất nhiều loại chúng tỏ không an toàn (không phụ thuộc vào việc liệu hệ mật có an toàn hay không ) Tuy nhiên , có phơng án khác an toàn sơ đồ : gi = e gi-1 (xi) ⊕ xi gi = e gi-1 (xi) ⊕ xI ⊕ gi-1 gi = e gi-1 (xi ⊕ gi-1) ⊕ xI gi = e gi-1 (xi ⊕ gi-1) ⊕ xI ⊕ gi-1 7.7 Hµm hash MD4 Hàm hash MD4 đợc Riverst đề xuất năm 1990 hiên mạnh MD5 đợc đa năm 1991 Chuẩn hàm hash an toàn (hay SHS) phức tạp song da tên phơng pháp tơng tự Nó đợc công bố hồ sơ liên bang năm 1992 đợc chấp nhận làm tiêu chuẩn vào ngày 11/5/1993 Tất hàm hash nhanh nên thực tế chúng dùng để kí điện dài Trong phần mô tả chi tiết MD4 thảo luận số cảI tiến dùng MD5 SHS Cho trớc xâu bit tr−íc hÕt ta t¹o mét m¹ng: M = M[0] M[1] M[N-1] M[i] xâu bit có ®é dµI 32 vµ N ≡ mod 16 Ta gọi M[i] từ M đợc xây dựng từ x thuật toán hình 7.6 Hình 7.6 Xây dùng M MD4 Trang 15 Vietebooks Nguyễn Hoàng Cương d = 447-(|x| mod 512) gi¶ sư l kí hiệu biểu diễn nhị phân |x| mod 264.|l| = 64 M = x||1||0d||l Trong viƯc x©y dựng M, ta gắn số ssơn lẻ vào x, sau gài thêm số đủ để độ dài trở nên đồng d với 448 modulo 512.,cuối nối thêm 64 bit cha biểu diễn nhị phân độ dàI (ban đầu) x(đợc rút gọn theo móulo 264 cần) Xâu kết M có độ dàI chia hết cho 512 Vì chặt M thành từ 32 bit , số từ nhận đợc N-sẽ chia hết cho 16 Bây giờ, tiếp tục xây dựng tóm lợc thông báo 128 bit Hình 7.7 đa mô tả thuật toán mức cao Bản tóm lợc thông báo đợc xây dựng nh kÕt nèi tõ A,B,C vµ D mµ ta sÏ gọi ghi Bốn ghi đợc khởi ®éng nh− b−íc TiÕp theo ta xư lÝ bảng M 16 bit từ lúc Trong vòng lặp bớc 2, lấy 16 từ M lu chúng bảng X (bớc 3) Các giá trị bốn ghi dịch sau đợc lu lại (bớc 4) Sau ta thực ba vòng băm (hash) Mỗi vaòng gồm phép toán thực 16 từ X Các phép toán đợc thực ba vòng tạo giá trị bốn ghi Cuối ,bốn ghi đợc update (cập nhật) bớc cách cộng ngợc giá trị lu trớc bớc Phép cộng đợc xác định cộng số nguyên dơng ,đợc rút gọn theo modelo 232 Ba vòng MD4 khác (không giông nh DES 16 vòng nh nhau) Trớc hết ta mô tả vàI phép toán khác ba vòng Trong phần sau,ta kí hiệu X Y từ đầu vào phép toán tạo từ đầu Dới phép toán đợc dùng: XY phép AND theo bit X Y XY phép OR theo bit X Y XY phép XOR theo bit X Y ơX phần bù cđa X X+Y lµ phÐp céng theo modulo 232 X= s >=0) Chú ý rằng, tất phép toán tất nhanh có phép số học đợc dùng phép cộng modulo 232 Nếu MD4 đợc ứng dụng cần tính đến kiến trúc máy tính mà chạy ®ã ®Ĩ thùc hiƯn Trang 16 Vietebooks Nguyễn Hồng Cương xác phép cộng Giả sử a1a2a3a4 byte từ xem ai,nh số nguyên dảI 0-255 đợc biểu diễn dới dạng nhị phân Trong kiến trúc kiểu endian lớn (chẳng hạn nh trạm Sunsparc) từ biểu diễn số nguyên a1224 + a2216 + a328 + a4 Trong kiÕn tróc kiĨu endian nhá (ch¼ng hạn họ intel 80xxx) Từ biểu diễn số nguyên: a4224+ + a3 216 + a2 28+a1 MD4 gi¶ thiÕt dùng kiến trúc kiểu endian nhỏ ĐIều quan trọng tóm lợc thông báo độc lập với kiến trúc Vì thể muốn chạy MD4 máy tÝnh endian lín cÇn thùc hiƯn phÐp céng X+Y nh− sau: Trao đổi x1 x4; x2 x3; y1 vµ y4; y2 vµ y3 TÝnh Z = X+Y mod 232 Trao đổi z1 z4 ; z2 z3 Hình 7.7 hàm hash MD4 A= 67452301 (hÖ hexa) B = efcdab89 (hÖ hexa) C = 98badcfe (hÖ hexa) D = 10325476 (hÖ hexa) for i = to N/16-1 for i = to 15 X[i] = M[16i+j] AA = A BB = B CC = C DD = D round1 round2 round3 A = A+AA B = B+ BB C = C + CC D = D + DD Trang 17 Vietebooks Nguyễn Hoàng Cương Các vòng 1, MD4 dùng tơng ứng ba hàm f, g, h Mỗi hàm lµ mét hµm boolean tÝnh theo bit dïng tõ làm đầu vào tạo từ đẩu Chúng đợc xác định nh sau: f(X,Y,Z) = (XY) ∨((-X)∧Z) g(X,Y,Z) = (X∧Y) ∨(X∧Z) ∨(Y∧Z) h(X,Y,Z) = X⊕ Y⊕ Z Các hình 7.8-7.10 mô tả đầy đủ vòng 1,2 MD4 MD4 đợc thiết kế chạy nhanh thực phần mềm chạy máy Sun SPARC có tốc độ 1.4 Mbyte/s Mặt khác, khó nói đIều cụ thể độ mật hàm hash, chẳng hạn nh MD4 không dựa vàI toán khó đà nghiên cứu kĩ (ví dụ nh phân tích nhân tử bàI toán logarithm rời rạc) Vì trờng hợp Dé tin cậy vào độ an toàn hệ thống đạt đợc thời gian nh hi vọng hệ thống vừa đợc nghiên cứu không tìm thấy không an toàn Hình 7.8 : Vßng cđa MD4 (round 1) 10 11 12 13 14 15 16 A = (A+ f(B,C,D) + X[0])

Ngày đăng: 18/06/2014, 10:05

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

TÀI LIỆU LIÊN QUAN