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

168 250 2
Giáo trình mật mã học phần 2 – 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

Giáo trình Mật mã học 164 4.8.5. Tính ton vẹn của dữ liệu v xác thực thông báo 4.8.5.1. Định nghĩa 1 Tính ton vẹn của dữ liệu l tính chất đảm bảo dữ liệu không bị sửa đổi một cách bất hợp pháp kể từ khi dữ liệu đợc tạo ra, đợc phát hoặc đợc lu giữ bởi một nguồn đợc xác định. 4.8.5.2. Định nghĩa 2 Xác thực tính nguyên bản của dữ liệu l một kiểu xác thực đảm bảo một bên liên lạc đợc chứng thực l nguồn thực sự tạo ra dữ liệu đó ở một thời điểm no đó trong quá khứ. Xác thực thông báo l một thuật ngữ đợc dùng tơng đơng với xác thực nguyên gốc của dữ liệu. Có ba phơng pháp cung cấp tính ton vẹn của dữ liệu bằng cách dùng các hm băm. - Chỉ dùng MAC Thông báo Thuật toán MAC MAC Kênh khôn g an toàn Khóa bí mật Thông báo Hình 4.7 - Dùng MDC v mã hóa Thông báo Thuật toán MDC MDC Thông báo Thuật toán mã hóa Khóa bí mật MDC Thông báo Kênh khôn g an toàn Hình 4.8 Chơng 4: Mật mã khóa công khai 165 - Sử dụng MDC v kênh tin cậy Thông báo Thuật toán MDC MDC Kênh tin cậ y Kênh khôn g an toàn Hình 4.9 4.8.5.6. Các phơng pháp đảm bảo xác thực tính nguyên vẹn của dữ liệu - Dùng MAC. - Dùng các sơ đồ chữ ký số. - Gắn (trớc khi mã hóa) một giá trị thẻ xác thực bí mật vo văn bản đợc mã. 4.8.6. Trao đổi v thỏa thuận khóa Giả sử A v B muốn liên lạc sử dụng hệ mật khóa bí mật. Để thoả thuận mật khóa K chung cho cả hai bên qua một kênh không an ton m không ai khác có thể biết đợc, A v B có thể dùng thủ tục thỏa thuận khóa Diffie Hellman sau: (1) Chọn trớc một số nguyên tố p thích hợp v một phần tử sinh của () 2p2Z * p . Các giá trị p v đợc công khai. (2) A gửi cho B giá trị pmod x . (2.1) B gửi cho A giá trị pmod y . (2.2) (3) Thực hiện các bớc sau mỗi khi cần có khóa chung: Giáo trình Mật mã học 166 a) A chọn một số nguyên bí mật x: 2px1 v gửi cho B thông báo (2.1). b) B chọn một số nguyên bí mật y: 2py1 v gửi cho A thông báo (2.2). c) B thu đợc x v tính khóa chung k: ( ) pmodk y x = d) A thu đợc y v tính khóa chung k: ( ) pmodk x y = Ví dụ: Giả sử A v B chọn p = 11 v = 2 Nhóm nhân xyclic sinh bởi : { } { } 6,3,7,9,10,5,8,4,2,19,0i, i == (Các phần tử sinh của nhóm ny bao gồm các phần tử sau: 2= , 8 3 = , 7 7 = , 6 9 = ). Giả sử A chọn giá trị ngẫu nhiên x = 4 v gửi cho B giá trị 511mod2 4 = . Giả sử B chọn giá trị ngẫu nhiên y = 7 v gửi cho A giá trị 711mod2 7 = . B nhận đợc 5 v tính khóa chung 311mod5k 7 == . A nhận đợc 7 v tính khóa chung 311mod7k 4 == . 4.8.7. Chữ ký số Chữ ký số đợc xây dựng trên cơ sở kết hợp mã hoá khóa công khai với hm băm. Các bớc tạo chữ ký v kiểm tra chữ ký đợc mô tả trên hình sau: Chơng 4: Mật mã khóa công khai 167 Hợp đồng kinh tế Thuật toán băm a3edbf5 3408scj Mã hóa khóa công khai Khóa bí mật của ngời gửi Tóm lợc thông báo Bản tin gốc Tóm lợc thông báo đã mã hóa Hợp đồng kinh tế 3408scj Hợp đồng đã đợc ký bằng chữ ký số Hình 4.10: Tạo một thông báo có ký bằng chữ ký số 3408scj Giải mã a3edbf5 Khóa công khai của ngời gửi Tóm lợc thông báo đã mã hóa Tóm lợc thông báo đã đợc phục hồi Hợp đồng kinh tế Thuật toán băm a3edbf5 Tóm lợc thông báo Hình 4.11: Các bớc kiểm tra một thông báo đã ký Ví dụ: Sơ đồ chữ ký số RSA Có thể coi bi toán xác thực l bi toán "đối ngẫu" với bi toán bảo mật. Vì vậy, sử dụng ngợc thuật toán RSA ta có thể có đợc một sơ đồ chữ ký số RSA nh sau: Giáo trình Mật mã học 168 Giả sử q.pn = , trong đó p v q l các số nguyên tố lớn có kích thớc tơng đơng. () ( ) { } n4mod1ed,Zd:d,e,nK * n = Với () d,e,nK = ta có dD = l khóa bí mật, () e,nE = l khóa công khai, m l bản tin cần ký. Tạo chữ ký : ( ) nmodmmsigS d D == Kiểm tra chữ ký : ( ) s,mver E = đúng nmodSm e . Hoạt động của sơ đồ chữ ký RSA có thể mô tả nh sau: a) Trờng hợp bản tin rõ m không cần bí mật (Hình 4.12) A ký bản tin m v gửi cho B. B kiểm tra chữ ký của A. D = d AA E = (e , n ) AAA E = (e , n ) ABB D = d BB Công bố E A Côn g bố E B Lấy E A A Gửi ( m, S ) cho B B A K ý : S = m mod n A A d A Kiểm tra: m = S mod n A e A A Hình 4.12: Sơ đồ chữ ký số RSA (không bí mật bản tin) Giả sử A muốn gửi cho B bản tin rõ m có xác thực bằng chữ ký số của mình. Trớc tiên A tính chữ ký số ( ) A d DA nmodmmsigS A A == Sau đó A gửi cho B bộ đôi ( ) A S,m . B nhận đợc () A S,m v kiểm tra xem điều kiện A e A nmodSm A có thoả mãn không. Nếu thoả mãn, thì khi đó B khẳng định rằng ( ) AE S,mver A nhận giá trị Đúng v chấp nhận chữ ký của A trên m. Chơng 4: Mật mã khóa công khai 169 b) Trờng hợp bản tin rõ m cần giữ bí mật (hình 4.13) D = d AA E = (e , n ) AAA E = (e , n ) ABB D = d BB Lấy E B Công bố E A Công bố E B Lấy E A A Gửi M cho B B i. S = m mod n AA d A ii. X = m S A iii. M = X mod n B e B i. X = m mod n B d B ii. X = m S A iii. Kiểm tra: m = S mod n A e A A Hình 4.13: Sơ đồ chữ ký số RSA (có bí mật bản tin) A ký bản tin rõ m để đợc chữ ký A S . Sau đó A dùng khóa mã công khai B E của B để lập bản mã ( ) AB S,mEM = rồi gửi đến B. Khi nhận dợc bản mã M, B dùng khóa bí mật B D của mình để giải mã cho M v thu đợc A S,m . Tiếp đó dùng thuật toán kiểm tra A E ver để xác nhận chữ ký của A. 4.8.8. Hệ mật dựa trên định danh 4.8.8.1. ý tởng cơ bản Hệ mật dựa trên định danh do Shamin đề xuất [16] l một hệ mật bất đối xứng trong đó thông tin định danh của thực thể (tên riêng) đóng vai trò khóa công khai của nó. Trung tâm xác thực T đợc sử dụng để tính khóa riêng tơng ứng của thực thể ny. Trong các hệ mật khóa công khai thông thờng mỗi ngời sử dụng có một cặp khóa (s, P) trong đó s l khóa bí mật (chỉ có ngời dùng ny biết) còn P l khóa công khai m mọi ngời đều có thể biết. Nh vậy, các khóa công khai không cần phải giữ kín m cần công bố rộng rãi. Tuy nhiên tính công khai ny lại trở thnh đối tợng cho các tấn công tích cực nh việc thay khóa công khai giả vo vị trí khóa công khai thực trong danh bạ. Bởi vậy, ngoi cặp khóa Giáo trình Mật mã học 170 (s, P) ta cần phải có chuỗi định danh I v không một dấu hiệu đảm bảo G để biết rằng P thực sự l khóa công khai của ngời dùng I v không phải l một kẻ giả mạo. Khi ta sử dụng các hệ mật dựa trên định danh, khóa công khai sẽ tơng đơng với định danh (P = I). Còn dấu hiệu đảm bảo sẽ tơng đơng với khóa bí mật (tức l G = s). Hệ thống ny có nhiều đặc tính tốt do không phải lu trữ chứng chỉ để kiểm tra. Sau khi tính khóa riêng của một ngời dùng T sẽ chuyển khóa riêng cho ngời dùng đó trên một kênh riêng an ton. khóa riêng ny đợc tính không chỉ từ thông tin định danh của thực thể m còn phải l một hm của một thông tin riêng no đó chỉ có T mới biết (khóa riêng của T). Đây l điều cần thiết nhằm tránh giả mạo v bắt chớc. Điều chủ yếu l chỉ T mới có khả năng tạo các khóa riêng hợp lệ phù hợp với thông tin định danh. 4.8.8.2. Sơ đồ trao đổi khóa Okamoto-Tanaka Phần ny mô tả tóm lợc sơ đồ trao đổi khóa Okamoto- Tanaka [17] l một hệ thống phân phối khóa dựa trên định danh. Sơ đồ ny gồm 3 pha sau: a) Pha chuẩn bị Trung tâm xác thực tin cậy chọn 2 số nguyên tố p v q v đa công khai các giá trị n, g v e, trong đó n = p.q, g l phần tử sinh của cả * q Z v * q Z , còn e * )n( Z . ở đây, hm Carmichael của n đợc xác định nh sau: (n) = BCNN(p 1, q 1) Chơng 4: Mật mã khóa công khai 171 Cho d * )n( Z l khóa bí mật của trung tâm thỏa mãn điều kiện: ed 1(mod(n)) Trun g tâm T Ngời dùng Alice N g ời dùn g Bob x = s .g AA r A x = s . g BB r B WK = (ID x ) A BBB e r A WK = ( ID x ) BA A A e r B Hình 4.14: Sơ đồ trao đổi khóa Okamoto-Tanaka b) Pha tham gia của ngời dùng Cho ID i l thông tin định danh của ngời dùng thứ i (i = A, B, C, ). Cho i s l khóa bí mật của ngời dùng i thỏa mãn: )n(modIDs d ii Sau đó trung tâm T sẽ công bố (e, n, g, ID i ) v phân phát s i tới mỗi ngời dùng i qua một kênh an ton (hoặc bằng cách dùng thẻ). c. Pha tạo khóa chung Ta giả sử ở đây rằng hai ngời dùng Alice v Bob muốn chia sẻ một khóa chung (chẳng hạn để dùng cho một hệ mật khóa bí mật). Trớc tiên Alice tạo một số ngẫu nhiên A r v tính: () A r AA xs g mod n v gửi nó cho Bob. Giáo trình Mật mã học 172 Tơng tự, Bob tạo một số ngẫu nhiên B r v tính: () B r BB xs g mod n v gửi nó cho Alice. Tiếp theo, Alice tính: ( ) () A r e AB B B WK ID x mod n= Tơng tự, Bob tính ( ) () B r e BA A A WK ID x mod n= WK AB v WK BA sẽ dùng lm khóa chung vì: ( ) () () () A A B A B BA r e AB B B r e r BB r e re d BB e.r .r BA WK ID .x ID s .g ID ID .g g WK mod n = = = = = bi tập 1. Ví dụ về hệ mật RSA. Cho p = 7 v q = 17. a. Tính n. b. Cho e (số mũ mã hóa) bằng 5. Hãy tính số mũ giải mã d. c. Hãy mã hóa v giải mã cho các số 49 v 12. 2. Ngời ta biết rằng đối với hệ mật RSA, tập các bản rõ bằng tập các bản mã. Tuy nhiên bạn có cho rằng một số giá trị trong không gian thông báo (bản rõ) l không mong muốn? Chơng 4: Mật mã khóa công khai 173 3. Trong hệ mật Rabin, giả sử p = 199, q = 211. a. Xác định 4 căn bậc hai của 1 mod n, trong đó n = p.q. b. Tính bản mã của 32767. c. Xác định 4 bản giải mã có thể của bản mã trên. 4. Xét trờng hợp đơn giản của hệ mật Merkle-Hellman sử dụng phép toán hoán vị đồng nhất. Giả sử dãy siêu tăng đợc chọn l (2, 3. 6, 13, 27, 52) giá trị ngẫu nhiên w đợc chọn l 31, modulo M đợc chọn l 105. a. Hãy xác định khóa bí mật. b. Bản tin ở dạng nhị phân có dạng 011000_110101_101110. Hãy tính bản mã v hãy giải mã để tìm lại bản tin ban đầu. 5. Đây l một ví dụ về hệ mật ElGamal áp dụng trong () 3 GF 3 . Đa thức x 3 + x 2 + 1 l một đa thức bất khả quy trên [ ] 3 Zx v bởi vậy [ ] () 32 3 Zx x x 1++ chính l GF(3 3 ). Ta có thể gắn 26 chữ cái của bảng chữ cái tiếng Anh với 26 phần tử khác không của trờng v nh vậy có thể mã hóa một văn bản thông thờng theo cách truyền thống. Ta sẽ dùng thứ tự theo từ điển của các đa thức khác không để thiết lập sự tơng ứng. 2 222 222 22 2 22 2 222 22 A1 B2 Cx Dx1 Ex2 F2x G2x1 H2x2 I x Jx1 Kx2 Lxx Mxx1 Nxx2 Ox2x Px2x1 Qx2x2 R2x S2x1 T2x2 U2xx V2xx1 W2xx2 X2x2x Y2x2x1 Z2x2x2 + + + + + + + ++ ++ + ++ ++ + + + ++ ++ + ++ ++ [...]... cây tổ chức ny cho tới khi tìm thấy điểm chung Camilla Dạng 632a của Camilla Dạng 632a của Andrew Dạng 632a của Betty (3) Dạng 632a của Camilla (2) Dạng 632a của Betty Andrew Dạng 632a của Betty Betty (1) (4) Bob Ann Hình 5.6: Bob chuyển khóa cho Ann 198 Giáo trình Mật mã học Ta có thể sử dụng một quá trình tơng tự để trao đổi khóa mật mã Nếu Bob v Ann muốn liên lạc, Bob có thể trao khóa công khai... mã hóa công khai điển hình thực hiện chậm hơn hẳn so với các thuật toán mã hóa đối xứng (thờng kém tới một vi bậc) Bởi vậy, trong khi bản thân việc mã hóa l một gánh nặng đối với tốc độ liên lạc thì mã hóa khóa công khai lại l một gánh nặng tới mức không thể chấp nhận đợc Vì lý do đó, Pablo v Rơnê có thể 190 Giáo trình Mật mã học không muốn sử dụng thuật toán khóa công khai để bảo vệ tổng thể quá trình. .. không phải l của Octavia 1 92 Giáo trình Mật mã học Pablo sẽ gửi ER(P, IP) tới Rơnê chứa tính danh của anh ta v một thông tin phụ dùng cho thông báo trả lời của Rơnê Bây giờ Rơnê sẽ liên lạc với trung tâm phân phối theo cách mã Pablo đã lm để nhận đợc khóa của anh ta Rơnê gửi (R, P) v nhận trở lại DD(EP, P) Cô ta gửi cho Pablo EP(IP, IR) để cho Pablo biết rằng cô ta đã thu đợc thông báo của anh ta, đã...174 Giáo trình Mật mã học Giả sử Bob dùng = x v a = 11 trong hệ mật ElGamal, khi đó a = x + 2 Hãy chỉ ra cách m Bob sẽ giải mã cho bản mã sau: (K, H) (P,X) (N,K) (H, R) (T, F) (V, Y) (E, H) (F, A) (T, W) (J, D) (V, J) 6 Mã BCH (15, 7, 5) có ma trận kiểm tra sau: 1 0 0 0 H= 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1... thay đổi khóa thờng kỳ thậm chí l dùng khóa khác nhau đối với mỗi thông báo Để lm đợc điều ny một trong hai ngời có thể tạo một khóa mới (đợc gọi l Knew) rồi mã hóa nó bằng K v gửi E (Knew, K) tới ngời còn lại Trong một số hệ mật K đợc gọi l khóa chủ hay mã hóa khóa v Knew đợc gọi l khóa phiên hay khoa lu chuyển 186 Giáo trình Mật mã học Nhợc điểm của phơng pháp ny l hai ngời dùng phải cùng chia sẻ... v các chú ý trong thực tế khi sử dụng mã hóa Trong chơng 3 v 4 ta đã xem xét các ví dụ về các hệ thống mật mã đợc coi l mật Có hng trăm phơng pháp mã hóa khác nhau ngoi DES v RSA l hai hệ mật khóa công khai v khóa bí mật đợc thừa nhận rộng rãi nhất trong thực tế Tuy nhiên chỉ đơn giản l có v sử dụng một hệ mật mạnh l cha đủ để đảm bảo mọi giao dịch sử dụng hệ mật đó đợc đảm bảo an ton Có những cách... không thể giải mã thông tin cuối cùng ny nhng anh ta có thể gửi nó cho Rơnê Một lần nữa, các tấn công của Octavia cũng không thnh công vì: - Nếu Octavia thay R bằng O trong thông báo gốc của Pablo để thay đổi tính danh của mình vo vị trí của Rơnê thì trong trả lời từ trung tâm phân phối Pablo sẽ nhận thấy rằng tính danh của Rơnê đã bị thay đổi thnh tính danh của Octavia 188 Giáo trình Mật mã học - Nếu... nặng nề thì nó có thể trở thnh một nút cổ chai trong mạng vì nhiều ngời dùng đều muốn có trọng ti riêng - Tính bí mật trở nên dễ bị tổn thơng vì trọng ti phải truy nhập tới nhiều thông tin nhạy cảm Vì những lý do trên m ngời ta thờng tránh dùng thủ tục ny nếu có thể 1 82 Giáo trình Mật mã học 5.1.4 Các thủ tục có phán xét Tơng tự nh trọng ti l ý tởng sử dụng quan tòa Quan tòa l một bên thứ ba có thể... nghiên cứu một số vấn đề m có các thủ tục an ton cho chúng 5 .2. 1 Phân phối khóa Thay đổi khóa mã hóa l một vấn đề quan trọng nhng không dễ Có thể thấy rằng thám mã sẽ cng có cơ may thnh công nếu có cng nhiều bản mã Bản mã từ các khóa khác nhau có thể giúp cho việc xác định cấu trúc của một thuật toán bí mật hoặc các khóa bí mật nhng bản mã từ cũng một khóa lại giúp cho việc tìm giá trị của khóa Nh... ton máy tính, chúng cho phép bạn phát thông tin ở dạng đợc che dấu Chúng đợc dùng để phát các ti liệu v số liệu trên một kênh có thể bị thu chặn Bằng cách sử dụng các quy ớc đợc thiết 178 Giáo trình Mật mã học lập giữa hai bên với hệ mật có thể đợc dùng cho những mục đích khác với việc liên lạc an ton Các quy ớc ny đợc gọi l các thủ tục, chúng sẽ l chủ đề của phần sau: 5.1.1 Định nghĩa thủ tục Một . thiết lập sự tơng ứng. 2 222 22 2 22 2 22 2 22 2 22 A1 B2 Cx Dx1 Ex2 F2x G2x1 H2x2 I x Jx1 Kx2 Lxx Mxx1 Nxx2 Ox2x Px2x1 Qx2x2 R2x S2x1 T2x2 U2xx V2xx1 W2xx2 X2x2x Y2x2x1 Z2x2x2 + + + + + + + ++. chung: Giáo trình Mật mã học 166 a) A chọn một số nguyên bí mật x: 2px1 v gửi cho B thông báo (2. 1). b) B chọn một số nguyên bí mật y: 2py1 v gửi cho A thông báo (2. 2). c). toàn Khóa bí mật Thông báo Hình 4.7 - Dùng MDC v mã hóa Thông báo Thuật toán MDC MDC Thông báo Thuật toán mã hóa Khóa bí mật MDC Thông báo Kênh khôn g an toàn Hình 4.8 Chơng 4: Mật mã khóa

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

Từ khóa liên quan

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

Tài liệu liên quan