Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
1,3 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Vũ Quang Hịa PHƢƠNG PHÁP CHỨNG MINH KHƠNG TIẾT LỘ THÔNG TIN VÀ ỨNG DỤNG TRONG GIAO DỊCH TRÊN MẠNG MÁY TÍNH KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin Cán hƣớng dẫn : PGS.TS Trịnh Nhật Tiến Cán đồng hƣớng dẫn : ThS Đặng Thu Hiền HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Trƣớc hết em xin gửi lời cảm ơn đến PGS.TS Trịnh Nhật Tiến, ngƣời thầy hƣớng dẫn em phát triển khóa luận từ lý thuyết đến ứng dụng Sự hƣớng dẫn thầy giúp em có thêm đƣợc hiểu biết sâu rộng số vấn đề liên quan đến bảo mật thông tin Qua đó, lý thuyết bảo mật lơi em trở thành hƣớng nghiên cứu tiếp em sau tốt nghiệp Em xin gửi lời cảm ơn đến Đặng Thu Hiền giúp em hồn thành luận văn cách tốt Từ đó, em có đƣợc hiểu biết nhƣ hồn thành khóa luận cách tốt Đồng thời em xin chân thành cảm ơn thầy cô môn nói riêng nhƣ thầy khoa Cơng Nghệ nói chung Nếu khơng có thầy, khoa em khơng thể hồn thành tốt luận văn đƣợc Em xin gửi lời cảm ơn đến thành viên lớp K51CA, ngƣời tìm hiểu em phát triển sở công nghệ để xây dựng nên ứng dụng nêu khóa luận Sau cùng, em xin gửi lời cảm ơn đến gia đình, bạn bè tạo điều kiện để em xây dựng thành công luận văn Hà Nội, tháng năm 2010 Sinh viên thực VŨ QUANG HÕA LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI NÓI ĐẦU Chương : CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN 1.1 LÝ THUYẾT MODULO 1.1.1 Hàm phi Euler 1.1.2 Đồng dƣ thức .2 1.1.3 Không gian Zn 1.1.4 Nhóm nhân Zn* 1.1.5 Thặng dƣ 1.1.6 Căn bậc Modulo 1.1.7 Các thuật thoán Zn* 1.1.8 Tính bậc Zn* 1.2 VẤN ĐỀ MÃ HÓA .10 1.2.1 Mã hoá đối xứng 11 1.2.2 Mã hố khơng đối xứng .12 1.3 VẤN ĐỀ KÝ ĐIỆN TỬ (DIGITAL SIGNATURE) 13 1.3.1 Khái niệm 13 1.3.2 Quá trình tạo chữ ký điện tử 13 1.3.3 Hàm băm sử dụng ký điện tử 14 1.3.4 Một số hàm băm thƣờng gặp .14 1.4 CHỮ KÝ MÙ 15 1.4.1 Khái niệm 15 1.4.2 Kỹ thuật chữ ký mù RSA 15 Chương : PHƢƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 16 2.1 KHÁI NIỆM PHÉP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 16 2.1.1 Khái niệm phép chứng minh .16 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.1.2 Hệ thống chứng minh tƣơng tác 16 2.1.3 Phƣơng pháp chứng minh không tiết lộ thông tin .17 2.2 PHÂN LOẠI ỨNG DỤNG XUẤT PHÁT TỪ THỰC TIỄN 21 2.2.1 Thiết kế giao thức 21 2.2.2 Đề án nhận dạng 21 2.3 ỨNG DỤNG TRONG THĂM DÒ TỪ XA 23 2.3.1 Các khái niệm 23 2.3.2 Chứng minh tính hợp lệ phiếu (x, y) (giao thức 1) 25 2.3.3 Chứng minh quyền sở hữu giá trị bí mật (giao thức 2) 29 2.3.4 Giai đoạn cử tri chuyển phiếu đến ban kiểm phiếu (phƣơng án 2) .31 2.4 ỨNG DỤNG TRONG SỬ DỤNG TIỀN ĐIỆN TỬ VÀ LƢỢC ĐỒ BRAND 33 2.4.1 Khởi tạo tài khoản .33 2.4.2 Chứng minh đại diện tài khoản 34 2.4.3 Giao thức rút tiền 35 2.4.4 Giao thức toán 37 2.4.5 Giao thức gửi .38 Chương : THỬ NGHIỆM CHƢƠNG TRÌNH VỚI ỨNG DỤNG TRONG THĂM DỊ TỪ XA 39 3.1 MƠ TẢ CHƢƠNG TRÌNH 39 3.1.1 Giới thiệu 39 3.1.2 Mô tả chức 40 3.2 THÀNH PHẦN CHÍNH CỦA CHƢƠNG TRÌNH 44 3.2.1 Cử tri chứng minh tính hợp lệ phiếu .44 3.2.2 Ngƣời trung thực chứng minh có giữ tham số bí mật 45 KẾT LUẬN 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC CÁC HÌNH VẼ Hình : Sơ đồ cử chi chuyển phiếu đến ban kiểm phiếu 25 Hình : Quá trình khởi tạo tài khoản 33 Hình : CT điền thơng tin cần thiết để mã hóa phiếu thăm dị 40 Hình : Các thơng số trả từ TT tính tốn CT .41 Hình : Lá phiếu TT kiểm tra lại .41 Hình : TT tính Beta w2 42 Hình : TT tính r 42 Hình : CT kiểm tra lại kết 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC CÁC BẢNG Bảng : Mô tả bước tính : 5596 mod 1234 = 1013 Bảng : Độ phức tạp theo bit phép toán Z Bảng : Giai đoạn cử tri chứng minh phiếu hợp lệ 26 Bảng : Giai đoạn 2, TT chứng minh phiếu làm mù hợp lệ 29 Bảng : Phương án gồm giai đoạn hai 31 Bảng : Quá trình chứng minh đại diện 34 Bảng : Giao thức rút tiền 36 Bảng : Giao thức toán .38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC TỪ VIẾT TẮT Ký hiệu viết tắt Giải thích CT Cử tri gcd(m, n) Ƣớc chung lớn KP Kiểm phiếu Prover Ngƣời chứng minh TT Ngƣời trung thực Verifier Ngƣời xác minh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI NÓI ĐẦU Ngày Internet trở thành phần thiếu ngƣời dân Việt Nam nói riêng nhƣ ngƣời dân giới nói riêng Thơng tin không ngừng đƣợc trao đổi, mua bán,…trên mạng Internet, lý mà việc bảo mật, đảm bảo an tồn thơng tin nhu cầu cấp thiết Trƣớc yêu cầu cần thiết đó, lý thuyết mật mã thông tin đời nhằm đảm bảo tính an tồn liệu nơi lƣu trữ nhƣ liệu đƣợc truyền mạng Khoá luận tập trung vào nghiên cứu khái niệm bản, sở lý thuyết toán học modulo sử dụng bảo mật thông tin, phƣơng pháp “chứng minh không tiết lộ thông tin” đặc biệt ứng dụng “chứng minh không tiết lộ thông tin” bỏ phiếu thăm dị từ xa Chứng minh khơng tiết lộ thông tin đƣợc nghiên cứu từ năm 80, phƣơng pháp chứng minh khơng có nghĩa “không để lộ thông tin” mà “để lộ thông tin mức nhất” vật, việc cần chứng minh Với việc “không để lộ” ngƣời xác minh khơng có nhiều hiểu biết vật việc, họ thu đƣợc chút thơng tin (coi nhƣ khơng) đặc điểm tính chất Ngành mật mã học ln phát triển khơng ngừng, phạm vi khóa luận này, chúng tơi trình bày vấn đề nhỏ phƣơng pháp “chứng minh khơng tiết lộ thơng tin” đồng thời tìm hiểu số ứng dụng thực tế sở lý thuyết LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương : CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN Chƣơng trình bày vấn đề toán học đƣợc ứng dụng nhiều tốn an tồn thơng tin Đó vấn đề lý thuyết toán học sử dụng bảo mật mã hóa thơng tin nhƣ : Mã hóa đồng cấu, chữ ký mù, chia sẻ bí mật ngƣỡng Shamir mã hóa Elgamal Thơng qua hình thành sở lý thuyết cho an toàn truyền tin mạng máy tính 1.1 LÝ THUYẾT MODULO 1.1.1 Hàm phi Euler 1/ Định nghĩa Cho n >= 1, Φ(n) đƣợc định nghĩa số số nguyên khoảng từ [1, n] nguyên tố với n Hàm Φ (n) đƣợc gọi hàm Euler phi 2/ Tính chất hàm Euler Nếu p số nguyên tố Φ (n) = p – Hàm phi Euler hàm có tính nhân : Nếu gcd(m, n) = Φ(mn) = Φ(m) Φ(n) (trong gcd(m, n) ký hiệu ƣớc số chung lớn m n) Nếu n = p1e1p2e2…pkek p1, p2, , pk thừa số nguyên tố n thì: Φ(n) = n(1 - 1 )(1 )… (1 ) p1 p2 pk 1.1.2 Đồng dƣ thức 1/ Định nghĩa Cho a b số nguyên, a đƣợc gọi đồng dƣ với b theo modulo n, ký hiệu: a b (mod n) (a – b) chia hết cho n Số nguyên n đƣợc gọi modulus đồng dƣ 2/ Ví dụ 10 (mod 7) 10 – = chia hết cho 7 -4 (mod 11) – (-4) = 11 chia hết cho 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3/ Tính chất đồng dư Cho a, a1, b, b1, c Z Ta có tính chất sau: a b (mod n) a b có số dƣ chia cho n a a (mod n) – Tính phản xạ a b (mod n) b a (mod n) – Tính đối xứng a b (mod n) b c (mod n) a c (mod n) – Tính bắc cầu a a1 (mod n) b b1 (mod n) : a + b a1 + b1 (mod n) a.b a1.b1 (mod n) Quan hệ “đồng dƣ” theo modulo n tập Z (tập số ngun) quan hệ tƣơng đƣơng (vì có tính chất phản xạ, đối xứng, bắc cầu), tạo tập phân hoạch gồm lớp tƣơng đƣơng : hai số nguyên thuộc lớp tƣơng đƣơng chúng có số dƣ chi cho n Mỗi lớp tƣơng đƣơng đại diện số tập Zn = {0, 1, 2, … , n-1} số dƣ chia số lớp cho n, ký hiệu lớp đƣợc đại diện số a [a] n: Nhƣ : [a] n = [b]n tƣơng đƣơng với a b (mod n) Vì ta đồng Zn với tập lớp tƣơng đƣơng theo modulo n Zn = {0, 1, 2, … , n-1} đƣợc gọi tập “thặng dƣ đầy đủ” theo modulo n Mọi số nguyên tìm đƣợc Zn số đồng dƣ với theo modulo n 1.1.3 Khơng gian Zn 1/ Các định nghĩa không gian Zn Các số nguyên theo modul n ký hiệu Zn tập hợp số nguyên {0,1,2,…, n-1} Các phép toán cộng, trừ, nhân Zn đƣợc thực theo modulo n 2/ Ví dụ Z25 = {0,1,2,…,24} Trong Z25 : 13 + 16 = 4, vì: 13 + 16 = 29 (mod 25) Tƣơng tự, 13*16 = Z25 - Cho a Zn Nghịch đảo nhân a theo modulo n số nguyên x Zn cho a*x (mod n) Nếu x tồn giá trị a đƣợc gọi khả nghịch, nghịch đảo a ký hiệu a-1 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.4.2 Chứng minh đại diện tài khoản Khi Alice rút tiền, phải xƣng danh với ngân hàng, cách chứng minh với ngân hàng rút tiền tài khoản mà Alice sở hữu Phƣơng pháp đƣợc dùng “chứng minh không tiết lộ thông tin” Alice phải chứng minh cho Ngân hàng rằng: Alice biết u1 u2 (vì Alice chủ sở hữu tài khoản), nhƣng không tiết lộ giá trị u1, u2 cho ngân hàng Quá trình xác thực đƣợc tiến hành nhƣ sau: b1) Alice chọn ngẫu nhiên w1 , w Z q gửi y g1w g2 w đến Ngân hàng b2) Ngân hàng thử thách để kiểm tra có Alice sở hữu tài khoản không, cách chọn ngẫu nhiên Cr Z q gửi đến Alice b3) Alice tính r1 w1 Cr u1 mod q, r2 w Cr u2 mod q , gửi đến Ngân hàng b4) Ngân hàng chấp nhận xác thực khi: yI Cr g1r1 g 2r2 I g1u1 g 2u2 Bởi vì, Alice thực chủ sở hữu tài khoản, phải biết u1, u2 (là giá trị khởi tạo tài khoản lúc ban đầu) biết đƣợc chúng thì: yI Cr g1w1 g2w2 ( g1u1 g2u2 )Cr g1w1 u1Cr g 2w2 u2Cr g1r1 g r2 Bảng : Quá trình chứng minh đại diện Alice (người chứng minh) Ngân hàng (người kiểm tra) Biết u1, u2 đại diện I g1u g2u Chỉ biết I, g1, g2; u1, u2 Tạo số ngẫu nhiên w1 , w Z q Nhận y, chọn ngẫu nhiên Cr Z q Tính y g1w g2 w gửi đến ngân hàng Gửi thử thách Cr đến Alice Nhận Cr, tính: Nhận r1, r2 Kiểm tra: r1 w1 Cr u1 mod q, r2 w Cr u2 mod q Và gửi chúng đến Ngân hàng Nếu thoả mãn, Ngân hàng chấp nhận Alice biết đại diện I (có nghĩa biết u1, u2 ) 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.4.3 Giao thức rút tiền Nếu xác thực đƣợc chấp nhận, trình rút tiền đƣợc tiến hành nhƣ sau : b1) Ngân hàng trừ lƣợng tiền tƣơng ứng từ tài khoản Alice Ngân hàng Allice tính đƣợc m = Id (d phần tử sinh công khai) a Ngân hàng gửi Alice: z = mx, a = gw, b = mw b (w đƣợc chọn ngẫu nhiên từ Zq, x khố bí mật ngân hàng) b2) Alice chọn số ngẫu nhiên s Z q* ; u, v Z q để làm “mù” m, z, a, b c m ' ms ( Id )s g1u1s g1u2s d s d z ' z s ; a ' au g v ; b ' bsu msv e Tách ngẫu nhiên: f u1s ( x1 x2 ) mod q, u2 s ( y1 y2 ) mod q g với s z1 z2 mod q h Tính A g1x g2 y d z ; B m '/ A g1x g2 y d z 1 2 b3) Alice dùng hàm băm H tính c’ = H (m’, z’, a’, b’, A) Làm “mù” c’ c c' mod q , gửi c đến ngân hàng u b4) Ngân hàng ký c đƣợc r = xc + w mod q, gửi r cho Alice, ghi có vào tài khoản Alice Alice chấp nhận kiểm tra thấy gr = hca mr = zcb tính r’ = ru + v mod q Lúc này, Alice có đồng tiền điện tử thật đƣợc đại diện bởi: A, B, Sign (A, B) với Sign (A, B) = (z’, a’, b’, r’) chữ ký Ngân hàng Nhƣng làm biết đƣợc giá trị đồng tiền Có hai cách khác để giải vấn đề này: Cách 1: Ngân hàng sử dụng khố cơng khai cho loại tiền Nghĩa là, có k đồng tiền khác biệt ngân hàng phải cơng khai k khố cơng khai sau: (g1, h1) (gk, hk) 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cách 2: Chọn k phần tử sinh giả (dummy generator) khác đƣợc công khai d1, …,dk Mỗi phần tử sinh đƣợc dùng để biểu giá trị đồng tiền Bảng : Giao thức rút tiền Alice I g g2 u1 Ngân hàng x : khố bí mật u2 x (g, h): khố cơng khai (h = g ) w Zq z, a, b m = Id, z = mx, a = gw, b = mw m = Id = g1u g2u d s Z q* m ' ms ( Id )s g1u1s g1u2s d s z ' zs Tách ngẫu nhiên u, v Z q a ' au g v b ' bsu msv c’ = H (m’, z’, a’, b’, A) c c' mod q u c r r = xc + w mod q Kiểm tra: gr = hca mr = zcb Tính r’ = ru + v mod q Đồng tiền: (A, B, Sign (A, B)) với Sign (A, B) = (z’, a’, b’, r’) 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.4.4 Giao thức toán Khi Alice muốn mua hàng hay sử dụng dịch vụ Bob, trƣớc tiên Alice cần phải gửi tiền cho Bob, trình toán đƣợc thực theo bƣớc sau: b1) Alice gửi tiền (A, B, Sign (A, B)) đến Bob A g1x1 g2 y1 d z1 ; B m '/ A g1x2 g2 y2 d z2 Sign (A, B) = (z’, a’, b’, r’) b2) Đầu tiên, Bob kiểm tra xem AB hay không Nếu AB = 1, có nghĩa: ( g1x1 g y1 d z1 )( g1x2 g y2 d z2 ) g1x1 x2 g y1 y2 d z1 z2 g1u1s g 2u2 s d s s0 Vậy, ngân hàng không xác định đƣợc u1, u2 trƣờng hợp “double-spending” Sau đó, Bob kiểm tra chữ ký ngân hàng sign(A,B) có hợp lệ không Nếu đúng, Bob thử thách Alice cách gửi c Z q* , c không cần thiết số ngẫu nhiên, nhƣng phải đảm bảo lần tốn Bob tính c nhƣ sau: c = H0 (A, B, Ib, date/time), với I định danh Bob, date/time nhãn thời gian giao dịch, H0 hàm băm b3) Alice phản hồi với: r1 = x1 + cx2 mod q r2 = x2 + cy2 mod q r3 = x3 + cz2 mod q b4) Bob kiểm tra, g1r g2r g2r ABC chấp nhận tốn vì: g1r1 g2r2 g2r3 g1x1 cx2 g2 y1 cy2 g3 z1 cz2 ( g1x1 g2 y1 g3 z1 )( g1cx2 g2cy2 g3cz2 ) ABC 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bảng : Giao thức toán Alice Bob A, B, sign (A, B) AB 1? Kiểm tra sign (A, B) c r1 = x1 + cx2 mod q r2 = x2 + cy2 mod q r3 = x3 + cz2 mod q r1, r2, r3 g1r1 g2 r2 g2 r3 ABC ? Nếu Bob chấp nhận toán 2.4.5 Giao thức gửi b1) Bob gửi thông tin toán (A, B, Sign (A, B)), c, r1, r2 r3 đến ngân hàng b2) Ngân kiểm tra chữ ký có xác khơng đồng tiền khơng đƣợc tiêu xài trƣớc Bob thử thách Alice giá trị c = H0 (A, B, Ib, date/time) Alice trả lời lại giá trị r1, r2, r3 Nếu tất thoả mãn, Ngân hàng gửi tiền vào tài khoản Bob 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương : THỬ NGHIỆM CHƢƠNG TRÌNH VỚI ỨNG DỤNG TRONG THĂM DÕ TỪ XA 3.1 MƠ TẢ CHƢƠNG TRÌNH 3.1.1 Giới thiệu Chƣơng trình mơ hai giao thức đƣợc thiết kế WEB cho ứng dụng Internet đƣợc viết ngôn ngữ PHP có cài đặt chƣơng trình Xampp để hỗ trợ Notepad++ cho việc lập trình Do đƣợc ứng dụng thăm dị ý kiến từ xa nên việc chƣơng trình đƣợc chạy WEB lựa chọn đắn 1/Cấu hình hệ thống : Phần cứng(cấu hình tối thiểu) : Bộ nhớ ổ cứng : 20gb Bộ nhớ ram : 128mb Tốc độ máy tối thiểu : 1GHz Phần mềm : Hệ điều hành : Linux, Window,… Ngơn ngữ lập trình : PHP, HTML, CSS 2/ Các thành phần chương trình : Chƣơng trình thực Web nên thành phần gồm trang web mẫu điền thông tin đầu vào ngƣời dùng 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.1.2 Mơ tả chức 1/ Giao thức : CT chứng minh tính hợp lệ phiếu sau đƣợc mã hóa gửi đến TT : Bƣớc : Với việc Cử tri điền thơng tin cần thiết để mã hóa phiếu : Hình : CT điền thơng tin cần thiết để mã hóa phiếu thăm dò 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình : Các thơng số trả từ TT tính tốn CT Bƣớc : Sau tính tốn hết tham số lại, cử tri gửi lại cho TT, TT kiểm tra, tham số khơng thỏa mãn loại phiếu, chấp nhận tiếp tục mã hóa phiếu lần gửi cho ban KP: Hình : Lá phiếu TT kiểm tra lại 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2/ Giao thức TT chứng minh phiếu làm mù gửi tới ban KP hoàn toàn hợp lệ : Bƣớc : TT điền tham số đầu vào tính tốn, sau gửi cho CT: Hình : TT tính Beta w2 Bƣớc : Sau TT gửi Beta w2 cho CT, CT trả lại giá trị c2 TT tính tốn r Hình : TT tính r 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bƣớc : Cử tri kiểm tra lại kết nhận đƣợc, phiếu làm mù lần hồn tồn hợp lệ, khơng đúng, CT khơng chấp nhận Hình : CT kiểm tra lại kết 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.2 THÀNH PHẦN CHÍNH CỦA CHƢƠNG TRÌNH 3.2.1 Cử tri chứng minh tính hợp lệ phiếu //Lay Mang A function getArrayAj($d, $r, $gi, $x, $numOfCans, $w1) { global $g; $a = array(); for ($i=1; $i