Giáo trình mật mã học phần 1– Học viện bưu chính viễn thông

157 333 3
Giáo trình mật mã học phần 1– Học viện bưu chính viễn thông

Đ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

Lời nói đầu Trong phát triển xà hội loài ngời, kể từ có trao đổi thông tin, an toàn thông tin trở thành nhu cầu gắn liền với nh hình với bóng Từ thủa sơ khai, an toàn thông tin đợc hiểu đơn giản giữ đợc bí mật điều đợc xem nh nghệ thuật cha phải ngành khoa häc Víi sù ph¸t triĨn cđa khoa häc kü thuật công nghệ, với nhu cầu đặc biệt có liên quan tới an toàn thông tin, ngày kỹ thuật an toàn thông tin bao gồm: Kỹ thuật mật mà (Cryptography), Kỹ thuật nguỵ trang (Steganography), Kü thuËt t¹o bãng mê (Watermarking - hay xăm điện tử) Kỹ thuật mật mà nhằm đảm bảo ba dịch vụ an toàn bản:Bí mật (Confidential), Xác thực (Authentication), Đảm bảo tính toàn vẹn (Integrity) Có thể thÊy r»ng mËt m· häc lµ mét lÜnh vùc khoa học rộng lớn có liên quan nhiều đến toán học nh: Đại số tuyến tính, Lý thuyết thông tin, Lý thuyết độ phức tạp tính toán Nắm bắt đợc nhu cầu tìm hiểu mật mà học, Học viện Công nghệ Bu Viễn thông phối hợp với Nhà xuất Bu điện xuất giáo trình "Mật mà học" PGS.TS Nguyễn Bình chủ biên Cuốn giáo trình giới thiệu với bạn đọc kiến thức toán học nh: lý thuyết số, cấu trúc đại số nh vành nhóm, trờng ; số thuật toán mật mà cổ điển đại; thủ tục chuẩn ứng dụng thùc tÕ Víi nhiỊu vÝ dơ thĨ, cn s¸ch giúp cho bạn đọc thuận tiện trình học tập nghiên cứu để nâng cao kiến thức mật mà học Đây giáo trình phục vụ đào tạo Học viện Công nghệ Bu Viễn thông Hy vọng sách tài liệu tham khảo hữu ích cho giảng viên, sinh viên trờng đại học kỹ thuật công nghệ Xin trân trọng giới thiệu bạn đọc Hà Nội, ngày 23 tháng 10 năm 2003 Học viện công nghệ bu viễn thông thuật ngữ viết tắt DES Data Encryption Standard Chuẩn mà liệu LAN Local Area Network Mạng cục MDV Mà dịch vòng MTT Mà thay MHV Mà hoán vị ECB Electronic Code Book Chế độ mà ®iƯn tư CFB Cripher Feedback ChÕ ®é ph¶n håi m· CBC Cripher Block Chaining Chế độ liên kết khối mà RSA Rivest - Shamir - Adleman MAC Message Authentication Code Mà xác thực thông báo OWHF Oneway Hash Funtion Hàm băm chiều CRHF Collision Resistant hash function Hàm băm khó va chạm MDC Manipulation Detection Code Mà phát sù sưa ®ỉi LSB Least Signification Bit Bit thÊp nhÊt (có giá trị nhỏ Tiêu đề Header IDEA International Data Encryption Algorithm Thuật toán mà hóa liệu quốc tÕ PGP Pretty Good Privacy ThuËt to¸n m· hãa PGP SET Secure Electronic Transaction Giao dịch điện tử an toàn LFSR Linear Feedback Sequence Register Thanh ghi håi tiÕp tuyÕn tÝnh Firewall Bøc t−êng lưa Server M¸y chđ Router Bé định tuyến Phần I Các kiến thức toán học phụ trợ bổ túc lý thuyết số 1.1 Số nguyên Tập số nguyên { , 3, 2, 1, 0,1, 2, 3,K}= Z K 1.1.1 Định nghĩa 1.1 Cho a, b ∈ Ζ a lμ −íc cđa b nÕu ∃c ∈ Z : b = a.c Ký hiƯu lμ a b 1.1.2 C¸c tÝnh chÊt chia hÕt ∀ a, b, c ∈ Ζ ta cã: (i) a a (ii) NÕu a b vμ b c th× a c (iii) NÕu a b vμ a c th× a (bx + cy ) víi ∀x, y ∈ Z (iv) NÕu a b vμ b a th× a = ± b 1.1.3 Định nghĩa 1.2 (Thuật toán chia số nguyên) Nếu a v b l số nguyên với b a = qb + r; ≤ r < b q vμ r lμ giá trị 10 Giáo trình Mật m· häc PhÇn d− cđa phÐp chia a vμ b đợc ký hiệu a mod b = r Thơng phép chia a v b đợc ký hiệu a div b = q ⎡a ⎤ ⎡a ⎤ Ta cã a div b = ⎢ ⎥, a mod b = a − b⎢ ⎥ ⎣b⎦ ⎣b⎦ VÝ dô: a = 73, b = 17 73 div 17 = 4, 73 mod 17 = 1.1.4 Định nghĩa 1.3 (Ước chung) c lμ −íc chung cđa a vμ b nÕu c a & c b 1.1.5 Định nghĩa 1.4 (Ước chung lớn (ƯCLN)) Số nguyên dơng d l ƯCLN sè nguyªn a vμ b (Ký hiƯu d = (a, b)) nÕu: (i) d lμ −íc chung cđa a vμ b (ii) NÕu cã c a vμ c b th× c d Nh (a,b) l số nguyên dơng lớn ớc a v b không kể (0,0) = VÝ dơ: C¸c −íc chung cđa 12 vμ 18 lμ {± 1, ± 2, ± 3, ± 6} (12,18) = 1.1.6 Định nghĩa 1.5 (Bội chung nhỏ (BCNN)) Số nguyên dơng d l BCNN số nguyên a v b (Ký hiệu d = BCNN (a,b)) nÕu: (i) a d, b d (ii) NÕu cã a c, b c th× d c Nh− vËy d l số nguyên dơng nhỏ l bội a v b Chơng 1: Bổ túc lý thuyÕt sè 11 1.1.7 TÝnh chÊt BCNN (a , b) = a.b (a , b) VÝ dô: (12 ,18 ) = ⇒ BCNN(12 ,18 ) = 12 18 = 36 1.1.8 Định nghĩa 1.6 Hai số nguyên dơng a v b đợc gọi l nguyên tố nếu: (a,b) = 1.1.9 Định nghĩa 1.7 Số nguyên p đợc gọi l số nguyên tố ớc dơng l v p Ngợc lại p đợc gọi l hợp số 1.1.10 Định lý số học Với số nguyên n ta phân tích đợc dới dạng tích luỹ thừa số nguyên tè e n = p11 pe2 K pek k Trong pi l số nguyên tố khác v ei l số nguyên dơng Hơn phân tích l 1.1.11 Định nghĩa 1.8 Với n 2, hm (n ) đợc xác định l số số nguyên khoảng [1 , n ] nguyên tố với n 1.1.12 Các tính chất hm (n) (i) Nếu p l số nguyên tè th× Φ(p) = p – (ii) NÕu (m, n) = th× Φ(m.n) = Φ(m) Φ(n) 12 Giáo trình Mật mà học e (iii) Nếu n = p11 pe2 K pek lμ ph©n tÝch thõa sè nguyên tố k n thì: ⎞ ⎛ ⎟ K ⎜1 − Φ (n ) = n⎜1 − ⎟ ⎜1 − ⎜ ⎟⎜ ⎟ ⎜ p1 ⎠ ⎝ p2 ⎠ ⎝ pk ⎝ ⎞ 1.1.13 Định lý 1.1 Với n th× Φ (n ) > n ln (ln n ) 1.2 c¸c thuËt to¸n z Cho a v b l số nguyên không âm v nhỏ n Cần ý số bit biểu diễn nhị phân n l [lgn] + vμ sè nμy xÊp xØ b»ng lgn Sè phép toán bit bốn phép toán số l cộng, trừ, nhân v chia sử dụng thuật toán kinh điển đợc tóm lợc bảng 1.1 Các kỹ thuật tinh tế phép toán nhân v chia có độ phức tạp nhỏ Bảng 1.1: Độ phức tạp bit phép toán Z Phép toán §é phøc t¹p bit Céng a+b 0(lga + lgb) = 0(lgn) Trõ a–b 0(lga + lgb) = 0(lgn) Nh©n a.b 0((lga).(lgb)) = 0((lgn)2) Chia a = qb + r 0((lga).(lgb)) = 0((lgn)2) ƯCLN số nguyên a v b đợc tính theo định lý sau: 1.2.1 Định lý 1.2 e f f NÕu a = p11 pe2 K pek , b = p11 p22 p fk ®ã e i ≥ 0, fi ≥ k k th× − CLN(a , b) = p1 (e1 , f1 ) p (e2 , f2 ) K pmin (ek , fk ) k Ch−¬ng 1: Bỉ tóc vỊ lý thut sè 13 max vμ BCNN (a , b) = p1 (e1 ,f1 ) pmax (e2 ,f2 ) K pmax (ek ,fk ) k VÝ dô: Cho a = 4864 = 28.19; b = 3458 = 2.7.13.19 Khi ®ã: − CLN(a , b) = (4864, 3458 ) = 2.19 = 38 BCNN(a , b) = (4864, 3458 ) = 28.7.13.19 = 442624 1.2.2 Định lý 1.3 Nếu a v b l số nguyên dơng với a > b ƯCLN(a,b) = ƯCLN (b,a mod b) ThuËt to¸n Euclide sau sÏ cho ta c¸ch tính ƯCLN hiệu m không cần phải phân tích thừa số nguyên tố 1.2.3 Thuật toán Euclide Tính ƯCLN số nguyên Vo : Hai số nguyên không âm a v b với a > b Ra : ¦CLN cđa a vμ b (1) While b ≠ r ← a mod b, a ← b, b r (2) Return (a) 1.2.4 Định lý 1.4 Thuật toán có thời gian chạy chừng ( (lg n ) ) c¸c phÐp to¸n bit Ví dụ: Sau l bớc chia thuật toán tính: (4864, 3458 ) = 38 4864 = 1.3458 + 1406 3458 = 2.1406 + 646 1406 = 2.646 + 76 646 = 5.114 + 38 76 = 2.38 + 14 Giáo trình Mật mà học Thuật toán đợc mở rộng để tính đợc ƯCLN số nguyên a v b m tính đợc số nguyên x vμ y tho¶ m·n ax + by = d 1.2.5 ThuËt to¸n Euclide më réng Vμo : Hai sè nguyên không âm a v b với a b Ra : d = ƯCLN(a,b) v số nguyên x vμ y tháa m·n ax + by = d (1) Nếu b= đặt d a , x ← , y ← vμ return (d, x, y) (2) Đặt x 1, x1 0, y ← , y1 ← (3) While b > (3.1) q ← ⎣a / b⎦ , r ← a − qb , x ← x − qx1 , y ← y − qy1 (3.2) a ← b, b ← r, x ← x1 , x1 ← x, y ← y1 , y1 y (4) Đặt d a, x ← x , y ← y vμ vμ return (d, x, y) 1.2.6 Định lý 1.5 Thuật toán có thời gian chạy cỡ 0((lgn)2) phép toán bit Ví dụ: Bảng 1.2 sau bớc thuật toán với giá trị vo a = 4864 v b = 3458 Bảng 1.2: Thuật toán Euclide më réng Q r x y a b x2 x1 y2 y1 − − − − 4864 3458 0 1 1406 −1 3458 1406 1 −1 646 −2 1406 646 −2 −1 114 −7 646 114 −2 76 −27 38 114 76 −27 −7 38 38 32 −45 76 38 −27 32 38 −45 −91 128 38 32 91 45 128 Chơng 4: Mật mà khóa công khai 149 Theo chiÕn thuËt nμy, Bob sÏ t×m thÊy tõ y' có khoảng cách tới r nhỏ Sau giải mà r thnh y', xác định vÐct¬ k chiỊu x' cho y' = x' G Bob hy väng y' = y vμ bëi vËy x' = x (tøc lμ Bob tin r»ng c¸c sai số đờng truyền đà đợc sửa) Dễ dng thấy rằng, sai số đờng truyền nhiều l (d 1) / thực tế chiến thuật ny sửa đợc tất sai Ta xét thực tế, thuật toán giải mà ny đợc thùc hiƯn nh− thÕ nμo? V× C = k nên Bob so sánh r với từ mà phải kiểm tra k véctơ l số lín theo hμm mị so víi k Nãi c¸ch kh¸c, thuật toán ny l thuật toán chạy thời gian đa thức Một biện pháp khác (tạo sở cho nhiều thuật toán giải mà thực tế) dựa khái niệm syndrom Ma trận kiểm tra tính chẵn lẻ mà C[n , k , d ] (cã ma trËn sinh G) lμ mét m· trËn nhÞ phân (n k )ì n chiều (ký hiệu l H) Các hng H tạo sở cho phần bù trực giao C (ký hiệu l C ) v đợc gọi l mà đối ngẫu víi C Nãi c¸ch kh¸c, c¸c hμng cđa H lμ véctơ độc lập tuyến tính, G H l ma trận không cấp k ì (n k) Cho vÐct¬ r ∈ (Z )n , ta xác định syndrom r l H r Syndrom H r ⊥ lμ mét vÐct¬ cét cã (n k ) thnh phần 4.7.2 Định lý Giả sö C lμ mét m· [n , k ] cã ma trËn sinh G vμ ma trËn kiÓm tra tÝnh chẵn lẻ H Khi x (Z )n lμ mét tõ m· vμ chØ H x T = [0 K 0] T 150 Gi¸o trình Mật mà học Hơn x C , e ∈ (Z )n vμ r = x + e th× H x T = H e T Ta coi e lμ vÐct¬ sai xt hiƯn trình truyền từ mà x Khi r biểu diễn véctơ thu đợc Định lý phát biểu syndrom phụ thuộc vo sai số m không phụ thuộc vo từ mà cụ thể no đợc truyền Điều ny gợi ý tới cách giải mà gọi l giải mà theo syndrom Trớc tiên tính s = H r T s l véctơ không, ta giải mà r thnh r Nếu không ta lần lợt tạo tất véctơ sai có trọng số Với véctơ ny, ta tính H e T NÕu cã mét vÐct¬ e nμo ®ã tháa m·n H e T = s th× ta giải mà r thnh r e Ngợc lại, lại tiếp tục tạo véctơ sai có trọng số 2, 3,K, [(d − 1) / 2] Theo thuËt toán ny, giải mà cho véctơ nhận ®−ỵc ⎛ n ⎞ ⎛n⎞ ⎟ ⎜ nhiỊu nhÊt + ⎜ ⎟ + K + ⎜ d − ⎟ b−íc ⎜1⎟ ⎜ ⎟ ⎝ ⎠ ⎠ Phơng pháp ny lm việc mà tuyến tính Đối với số loại mà đặc biệt, thủ tục giải mà nhanh chóng Tuy nhiên, thực tế, cách giải ny cho chiến thuật giải mà "ngời láng giếng gần nhất" l bi toán NP đầy đủ Nh vậy, cha có thuật toán giải thời gian đa thức đà biết no cho bi toán giải mà theo "ngời láng giềng gần nhất" tổng quát (Khi số sai số không bị giới hạn [(d 1) / 2] ) Cịng gièng nh− bμi to¸n tỉng tËp con, trờng hợp đặc biệt "dƠ", sau ®ã ngơy trang cho nã gièng víi bi toán chung "khó" Để đa lý thuyết di dòng, Chơng 4: Mật mà khóa công khai 151 ta tóm lợc kết Một trờng hợp dễ đợc McEliece đề nghị l dùng mà lớp mà Goppa Trên thực tế, mà ny có thuật toán giải mà hữu hiệu Hơn các, mà ny dễ tạo v có số lợng lớn mà Goppa tơng đơng có tham số Các tham sè cđa m· Goppa cã d¹ng n = m , d = 2t + vμ k = n mt Để áp dụng thực tế cho hệ mật khóa công khai, McEliece đề nghị chän m = 10 vμ t = 50 §iỊu ny ứng với mà Goppa [1024 , 524 ,101] Mỗi rõ l véctơ nhị phân cấp 524 v mà l véctơ nhị phân cấp 1024 Khoá công khai l ma trận nhị phân cấp 524 ì 1024 Hình 4.1 mô tả hệ mật McEliece Cho G lµ mét ma trËn sinh cđa mét m· Goppa C[n, k, d], ®ã n = 2m, d = 2t + vµ k = n - mt Cho s ma trận khả nghịch cấp k ì k Z2 Giả sử P ma trận hoán vị cấp n ì n, ta đặt G' = SGP Cho P = (Z2)2, C = (Z2)n vµ ký hiƯu: K = {(G, S, P, G')} Trong G, S, P đợc xây dựng nh mô tả đợc giữ kín, G' đợc công khai Với K = (G, S, P, G'), ta định nghĩa: ek(x, e) = xG' + e đây, e (Z2)n véctơ ngẫu nhiên có trọng số t Bob gi¶i m· b¶n m· y ∈ (Z2)n theo bớc sau: Tính y1 = yP-1 Giải mà (Decode) y1, Bob tìm đợc y1 = x1 + e1, x1 ∈ C TÝnh x0 ∈ (Z2)k cho x0G = x1 TÝnh x = x0S-1 H×nh 4.1: Hệ mật McEliece Để minh họa cho thủ tơc m· vμ gi¶i m· (code and decode), xÐt vÝ dụ sau: 152 Giáo trình Mật mà học Ví dụ 1: Ma trËn: ⎛1 ⎜ ⎜0 G=⎜ ⎜ ⎜0 ⎝ 0 1 0⎞ ⎟ 0 1⎟ 0 1⎟ ⎟ 0 1 1⎟ ⎠ lμ ma trËn sinh cña m· Hamming [7 , , 3] Gi¶ sư Bob chän ma trËn S vμ ma trËn P nh− sau: ⎛1 ⎜ ⎜1 S=⎜ ⎜ ⎜1 ⎝ 1 ⎛0 ⎜ ⎜0 1⎞ ⎜0 ⎟ ⎜ 1⎟ vμ P = ⎜ 1 1⎟ ⎜ ⎟ ⎜0 0⎟ ⎠ ⎜0 ⎜ ⎝0 0 0 0⎞ ⎟ 0 0 0⎟ 0 0 1⎟ ⎟ 0 0 0⎟ ⎟ 0 0⎟ 0 0 0⎟ ⎟ 0 0⎠ Khi ®ã ma trËn sinh c«ng khai lμ: ⎛1 ⎜ ⎜1 G' = ⎜ ⎜ ⎜0 ⎝ 1 0 0⎞ ⎟ 0 0⎟ 0 1 1⎟ ⎟ 1 1 Bây giả sử Alice mà hóa rõ x = (1, 1, 0, 1) cách dùng véctơ sai ngẫu nhiên trọng số có dạng: e = (0, 0, 0, 1, 0, 0) Bản mà tính đợc l: y = x G' + e ⎛1 1 0 0⎞ ⎟ ⎜ ⎜1 0 0⎟ + (0, 0, 0, 0, 1, 0, ) = (1, 1, 0, 1)⎜ 0 1 1⎟ ⎟ ⎜ ⎜0 1 1 0⎟ ⎠ ⎝ = (0, 1, 1, 0, 0, 1, ) + (0, 0, 0, 0, 1, 0, ) = (0, 1, 1, 0, 1, 1, ) Ch−¬ng 4: MËt m· khãa công khai 153 Khi Bob nhận đợc mà y, tr−íc hÕt tÝnh ⎛0 ⎜ ⎜1 ⎜0 ⎜ y = y P −1 = (0, 1, 1, 0, 1, 1, )⎜ ⎜ ⎜0 ⎜0 ⎜ ⎝0 = (1, 0, 0, 0, 1, 1, 1) 0 0 0⎞ ⎟ 0 0 0⎟ 0 0⎟ ⎟ 0 0 0⎟ ⎟ 0 0 1⎟ 0 0 0⎟ ⎟ 0 0⎠ TiÕp theo Bob gi¶i m· y1 để nhận đợc x1 = (1, 0, 0, 0, 1, 1, ) (Cần để ý l e1 e phép nhân với P ) Sau lËp x = (1, 0, 0, ) (bốn thnh phần x1 ) Cuối cïng Bob tÝnh: ⎛1 ⎜ ⎜1 −1 x = S x0 = ⎜ ⎜ ⎜1 ⎝ 1⎞ ⎟ 0⎟ (1, 0, 0, 0) = (1, 1, 0, 1) 1 1⎟ ⎟ 0 1⎟ Đây l rõ mà Alice đà mà 4.8 hm băm v tính ton vẹn liệu 4.8.1 Mở đầu Các hm băm đóng vai trò mật mà đại Hm băm tạo đầu từ tin đầu vo Đầu ny đợc định nghĩa l mà băm (kết băm, giá trị băm) 154 Giáo trình Mật mà học Nói cách xác hơn, hm băm h tạo ánh xạ xâu bit có độ di hữu hạn tuỳ ý thnh xâu bit có độ di n cố định Hm băm h l ánh xạ có độ di n cố định h : D → R vμ D > R ®iỊu nμy có nghĩa l tránh khỏi va chạm (tức l giá trị đầu có nhiều giá trị vo khác nhau) Nếu hm h l ngẫu nhiên theo nghĩa tất đầu l đồng xác suất có chừng t n đầu vo ánh xạ tới đầu (t: số bit đầu vo, n: số bit đầu ra, t > n) v đầu vo đợc chọn ngẫu nhiên có đầu với xác suất n (không phụ thuộc vo t) ý tởng việc sử dụng hm băm mật m· lμ sư dơng chóng nh− mét ¶nh biĨu diƠn rút gọn (đôi đợc gọi l vết, dấu tay số hay tóm lợc thông báo) xâu vo v đợc dùng nh thể l xâu vo Các hm băm đợc dùng cho sơ đồ chữ ký số kết hợp với việc đảm bảo tính ton vẹn liệu, tin trớc hết đợc băm v giá trị băm (đợc xem nh đại diện cho tin) đợc ký thay cho vị trí tin gốc Một lớp hm băm đợc gọi l mà xác thực thông báo (MAC - Message Authentication Codes) cho phép xác thực thông báo kỹ thuật đối xứng (mật mà cổ điển) Các thuật toán MAC sử dụng đầu vo (bao gồm tin v khóa bí mật) để tạo đầu có kích cỡ cố định (n bit) với ý đồ đảm bảo khóa việc tạo Chơng 4: Mật mà khóa công khai 155 đầu l không khả thi MAC đợc dùng để đảm bảo tính ton vẹn liệu, xác thực tính nguyên số liệu nh định danh sơ đồ mật mà cổ điển Một ứng dụng điển hình hm băm (không dùng khóa) để đảm bảo tính ton vẹn liệu đợc mô tả nh sau: Giá trị băm tơng ứng với tin riêng x đợc tính thời điểm T1 Tính ton vẹn giá trị băm ny (chứ l thân tin) đợc bảo vệ theo cách no thời ®iÓm tiÕp theo sau T2, phÐp kiÓm tra sau sÏ đợc tiến hnh để xác định xem liệu thông báo có bị sửa đổi hay không, tức l xem liệu b¶n tin x ' cã gièng b¶n tin gèc hay không Giá trị băm x ' đợc tính toán v so sánh với giá trị băm đà đợc bảo vệ, chúng bên thu chÊp nhËn r»ng x vμ x ' lμ nh− v nh có nghĩa l tin đà không bị sửa đổi Nh vấn đề đảm bảo tính vẹn ton tin lớn đợc gửi đảm bảo cho giá trị băm có kích cỡ cố định (v nhỏ) ứng dụng thờng đợc gọi l mà phát sửa đổi (MDC - Manipulation Detection Codes) 4.8.2 Các định nghĩa v tính chất 4.8.2.1 Định nghĩa hm băm Hm băm l mét hμm h cã Ýt nhÊt hai tÝnh chÊt sau: a) Tính chất nén: h ánh xạ đầu vo x có độ di bit hữu hạn tùy ý tới đầu h(x) có độ di bit n hữu hạn b) Tính chất dễ dng tính toán: Với h cho trớc v đầu vo x, dễ dng tính đợc h(x) 156 Giáo trình Mật m· häc 4.8.2.2 Mét sè tÝnh chÊt cđa c¸c hμm băm khóa Giả sử h l hm băm khóa, x v x ' l đầu vo y v y' l đầu Ngoi hai tính chất ta có tính chất sau: a) Tính khó tính toán nghịch ảnh: Đối với hầu hết đầu đợc xác định trớc, khả tính toán để tìm đầu vo m băm cho đầu tơng ứng (Tức l tìm nghịch ảnh x' cho h(x') = y víi y cho tr−íc v không biến đầu vo tơng ứng) b) Tính khó tìm nghịch ảnh thứ hai: Không có khả tính toán để tìm đầu vo đà cho trớc (Tức l với x cho trớc phải tìm x' x cho h(x ) = h(x') ) c) TÝnh khã va chạm Không có khả tính toán để tìm hai đầu vo khác x v x ' để h(x ) = h(x') 4.8.2.3 Định nghĩa hm băm chiều (OWHF - oneway hash function) OWHF l hm băm (có hai tính chất b¶n) cã tÝnh chÊt bỉ sung lμ : - Khã tìm nghịch ảnh - Khó tìm nghịch ảnh thứ hai 4.8.2.4 Định nghĩa hm băm khó va chạm (CRHF: Collision resistant HF) CRHF l hm băm (có hai tính chất bản) có tính chất bổ sung l: Chơng 4: Mật mà khóa công khai 157 - Khó tìm nghịch ảnh thứ hai - Khó v chạm 4.8.2.5 Chú ý thuật ngữ Khó tìm nghịch ảnh Một chiều Khó tìm nghịch ảnh thứ hai Khó va ch¹m yÕu Khã va ch¹m ≡ Khã va ch¹m mạnh OWHF Hm băm chiều yếu CRHF Hm băm chiều mạnh 4.8.2.6 Ví dụ r bit kiĨm tra cđa mét m· xyclic (n , k ) víi k > r cã thĨ coi lμ mét hμm băm thoả mÃn hai tính chất (dễ tính toán v nén) Tuy nhiên không thoả mÃn tính chất khó tìm nghịch ảnh thứ hai 4.2.8.7 Định nghĩa thuật toán mà xác thực thông báo (MAC) Thuật toán MAC l họ hm h k (đợc tham sè hãa b»ng mét khãa bÝ mËt k) cã c¸c tÝnh chÊt sau: (1) DƠ dμng tÝnh to¸n: Víi h k đà biết v giá trị k cho trớc v đầu vo x, h k (x ) ®−ỵc tÝnh dƠ dμng ( h k (x ) ®−ỵc gọi l giá trị MAC hay MAC) (2) Nén: h k ánh xạ đầu vo x có độ di bit hữu hạn tuỳ tới đầu h k (x ) có độ di bit n cố định (3) Khó tính toán: Với cặp giá trị (x i , h k (x i )) khả tÝnh mét cỈp (x , h k (x )) h k (x ) = h k (x i ) víi mét i nμo ®ã) víi x ≠ x i (kĨ có khả 158 Giáo trình Mật mà học Nếu tính chất c không thỏa mÃn thuật toán đợc coi l giả mạo MAC 4.8.2.8 Phân loại hm băm mật mà v ứng dụng Hàm băm Không cã khãa MDC OWHF Cã khãa C¸c øng dơng kh¸c Các ứng dụng khác MDC CRHF Hình 4.2 4.8.3 Các hm băm khóa (Các hm băm dựa mật mà khối) 4.8.3.1 Định nghĩa Mật mà khối (n, r) l mà khối xác định hm khả nghịch từ rõ n bit sang rõ n bit cách sử dụng khóa r bit NÕu E lμ mét phÐp m· ho¸ nh− vËy th× E k (x ) ký hiƯu cho phÐp mà hoá x khóa k 4.8.3.2 Định nghĩa Cho h l hm băm có lặp đợc xây dùng tõ mét mËt m· khèi víi hμm nÐn f thực s phép mà hoá khối để xử lý khối tin n bit Khi tốc độ cđa h lμ 1/s Ch−¬ng 4: MËt m· khãa công khai 159 4.8.3.3 MDC độ di đơn Ba sơ đồ dới có liên quan chặt chẽ với hm băm độ di đơn, xây dựng mật mà khối Các sơ đồ ny có sử dụng thnh phần đợc xác định trớc nh sau: - Một mật mà khối n bit khởi sinh E k đợc tham sè hãa b»ng mét khãa ®èi xøng k - Một hm g ánh xạ n bit vo thnh khóa k sư dơng cho E (NÕu c¸c khãa cho E có độ di n g l hm đồng nhất) - Một giá trị ban đầu cố định IV thích hợp để dùng với E Hi-1 xi g Hi-1 xi E Hi Matyas - Mayer - Oseas xi Hi-1 E g Hi Davies - Mayer E Hi Miyaguchi - Preneel Hình 4.3 4.8.3.3.1 Thuật toán băm Matyas - Mayer - Oseas Vμo: X©u bit x Ra : Mà băm n bit x (1) Đầu vo x đợc phân chia thnh khối n bit v đợc độn cần thiết nhằm tạo khối cuối hon chỉnh Ta đợc t khối n bit: x1 x K x t Phải xác định trớc giá trị ban đầu n bit (ký hiệu IV) 160 Giáo trình Mật mà học (2) Đầu l H t đợc xác định nh sau: H = IV, H i = E g (Hi −1 ) (x i ) ⊕ x i , ≤ i ≤ t 4.8.3.3.2 Thuật toán băm Davies - Mayer Vo: Xâu bit x Ra : Mà băm n bit x (1) Đầu vo x đợc phân thnh khối k bit (k l kích thớc khóa) v đợc độn cần thiết để tạo khối cuối hon chỉnh Biểu thị thông báo đà độn thnh t khối n bit: x1 x K x t Xác định trớc giá trị ban đầu n bit (ký hiệu IV) (2) Đầu l H t đợc xác định nh sau: H = IV, H i = E xi (H i −1 ) ⊕ H i −1 , i t 4.8.3.3.3 Thuật toán băm Miyaguchi - Preneel Sơ đồ ny tơng tự nh C1 ngoại trừ H i (đầu giai đoạn trớc) ®−ỵc céng mod víi tÝn hiƯu ë giai ®o¹n hiƯn thêi Nh− vËy: H = IV, H i = E g (Hi −1 ) (x i ) ⊕ x i ⊕ H i −1 , ≤ i t Nhận xét: Sơ đồ D_M coi l sơ đồ đối ngẫu với sơ đồ M - M - O theo nghÜa x i vμ H i đổi lẫn vai trò 4.8.3.4 MDC độ dμi kÐp: MDC - vμ MDC - MDC -2 vμ MDC - lμ c¸c m· ph¸t hiƯn sửa đổi yêu cầu tơng ứng l v phép toán mà hoá khối khối đầu vo hm băm Chúng sử dụng phép lặp sơ đồ M - D - O để tạo hm băm có dộ di kép Khi dùng DES chúng tạo mà băm 128 bit Tuy nhiên cấu trúc tổng quát dùng Chơng 4: Mật mà khóa công khai 161 hệ mật m· khèi kh¸c MDC-2 vμ MDC4 sư dơng c¸c thμnh phần xác định nh sau: - DES đợc dùng lm mật mà khối Ek có đầu vo/ra 64 bit v đợc tham số hoá khóa k 56 bit - Hai hm g v ~ ánh xạ giá trị 64 bit U thμnh c¸c khãa g DES 56 bit nh− sau: Cho U = u1 u K u 64 , xóa bit thứ u8 v đặt bit thứ v thứ vỊ "10" ®èi víi g vμ "01" ®èi víi ~ g g (U ) = u1 u u u u u u10 K u 63 ~(U ) = u u u u u u u K u g 10 63 Đồng thời điều ny phải đảm bảo chúng l khóa DES yếu nửa yếu khóa loại nμy cã bit thø hai b»ng bit thø ba §ång thời điều ny đảm bảo yêu cầu g bảo mËt lμ g (IV ) ≠ ~(IV ) ThuËt toán MDC - đợc mô tả theo sơ đồ sau: int Hi-1 g xi int E int g E int A B A B A D A D out out Hi Hi Hình 4.4 Hi-1 162 Giáo trình Mật mà học 4.8.3.4.1 Thuật toán MDC - Vo: Xâu bit x cã ®é dμi r = 64t víi t ≥ Ra : Mà băm 128 bit x (1) Phân x thnh khối 64 bit x i : x1 x K x t ~ (2) Chän số không bí mật IV v IV từ tập giá trị khuyến nghị đà đợc mô tả trớc Tập ngầm định giá trị cho trớc nμy lμ (ë d¹ng HEXA): IV = 0x52 52 52 52 52 52 52 52 ~ IV = 0x25 25 25 25 25 25 25 25 (3) Ký hiÖu⎟⎟ lμ phÐp ghÐp vμ CiL , CiR lμ c¸c nưa 32 bit phải v trái Ci ~ Đầu h(x ) = H t H t đợc xác định nh sau: (víi ≤ i ≤ t ) ~ H = IV, k i = g (H i −1 ), C i = E ki (x i ) ⊕ x i , H i = C L C R i i ( ) ~ ~ ~ ~ ~ ~ ~ H = IV, k i = ~ H i −1 , C i = E ~i (x i ) ⊕ x i , H i = C L C R g i i k ThuËt to¸n MDC - đợc mô tả theo sơ đồ sau: xi int Gi-1 int Gi-1 MDC - Hi int int Gi-1 int Gi-1 MDC - int H i out out Gi Gi Hình 4.5 Chơng 4: Mật mà khóa công khai 163 4.8.4.Các hm băm có khóa (MAC) Các hm băm có khóa đợc sử dụng để xác thực thông báo v thờng đợc gọi l thuật toán tạo mà xác thực thông báo (MAC) MAC dựa mật mà khối Thuật toán Vo: Dữ liệu x, mật m· khèi E, khãa MAC bÝ mËt k cña E Ra : n bit MAC x (n l độ dμi khèi cđa E) (1) §én vμ chia khèi: §én thêm bit vo x cần Chia liệu ®· ®én thμnh tõng khèi n bit : x1 x K x t (2) Xö lý theo chÕ ®é CBC Ký hiÖu E k lμ phÐp m· hãa E víi khãa k TÝnh khèi H t nh− sau: H1 ← E k (x ) H i ← K k (H i −1 ⊕ x i ); i t (3) Xử lý thêm để tăng søc m¹nh cđa MAC Dïng mét khãa bÝ mËt thø hai k' ≠ k TÝnh ( ) − H 't ← E k1 (H t ), H t = E k H 't ' (4) KÕt thóc: MAC lμ khèi n bit Ht xt x1 x2 H1 IV = E k x3 H2 E k H3 E K Xư lý thªm K' K E Ht E H't E Ht Hình 4.6: Thuật toán MAC dùng CBC ... s n Phần II Các thuật toán mật mà mật mà cổ điển Có ba phơng pháp mật mà cổ điển (mật mà khóa riêng hay mật mà khóa bí mật) : - Hoán vị; - Thay thÕ; - Xư lý bit (chđ u n»m ngôn ngữ lập trình) ... ) ← h(x ) , h(x ) ← r(x ) (2) Return (g(x)) 46 Giáo trình Mật mà học 2.4.9 Số học ®a thøc BiĨu diƠn ®a thøc lμ c¸ch biĨu diƠn thông dụng cho phần tử trờng hữu h¹n Fp víi q = pm vμ p lμ sè nguyên... {0 ,1}} 48 Giáo trình Mật mà học Sau l ví dụ số học tr−êng: - PhÐp céng : (1 11) + (1 0 1) = (0 ) - Phép nhân : Để nhóm hai phần tử (11 1) vμ (1 0 1) ta nh©n chóng nh− đa thức rời lấy phần d chia

Ngày đăng: 21/07/2015, 19:55

Từ khóa liên quan

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

Tài liệu liên quan