Một số giao thức chứng minh không tiết lộ thông tin và ứng dụng xác thực tài khoản trực tuyến

66 450 0
Một số giao thức chứng minh không tiết lộ thông tin và ứng dụng xác thực tài khoản trực tuyến

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI LẠI THỊ THÚY MỘT SỐ GIAO THỨC CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN VÀ ỨNG DỤNG XÁC THỰC TÀI KHOẢN TRỰC TUYẾN LUẬN VĂN THẠC SĨ TOÁN HỌC HÀ NỘI, 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI LẠI THỊ THÚY MỘT SỐ GIAO THỨC CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN VÀ ỨNG DỤNG XÁC THỰC TÀI KHOẢN TRỰC TUYẾN Chuyên ngành: Toán Ứng Dụng Mã số: 60 46 01 12 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS Trần Văn Dũng HÀ NỘI, 2016 LỜI CAM ĐOAN Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn hoàn toàn trung thực, không vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Trong trình làm luận văn có tham khảo tài liệu có liên quan ghi rõ nguồn tài liệu tham khảo Những kiến thức trình bày luận văn chưa trình bày hoàn chỉnh tài liệu TÁC GIẢ LUẬN VĂN LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành sâu sắc đến thầy cô giáo trường Đại học Sư Phạm Hà Nội nói chung thầy cô khoa Toán nói riêng tận tình dạy bảo, truyền đạt lại kiến thức kinh nghiệm quý báu suốt thời gian qua Tôi xin trân trọng gửi lời cảm ơn tới thầy giáo TS Trần Văn Dũng, người nhiệt tình giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình thực luận văn cao học Trong trình làm việc với thầy, tiếp thu thêm nhiều kiến thức bổ ích, kinh nghiệm việc bảo mật liệu, kinh nghiệm việc thực luận văn thái độ làm việc nghiêm túc, hiệu Đây kinh nghiệm cần thiết, quý báu giúp áp dụng vào thực tiễn sau làm việc Sau cùng, cho phép cảm ơn bạn bè, gia đình giúp đỡ, ủng hộ nhiều toàn trình học tập nghiên cứu hoàn thành luận văn Hà Nội, ngày tháng năm 2016 Học viên thực Lại Thị Thúy MỤC LỤC MỞ ĐẦU CHƯƠNG 1: CÁC KHÁI NIỆM VÀ KIẾN THỨC CƠ SỞ 1.1 Số học modulo 1.1.1 Khái niệm 1.1.2 Các phép toán modulo 1.1.3 Logarit rời rạc 1.2 Hệ mã khóa công khai 12 1.2.1 Mã khóa công khai RSA 12 1.2.2 Mã Elgamal 14 1.2.3 Trao đổi khóa Diffie – Hellman 16 1.2.4 Chữ ký điện tử DSA 16 CHƯƠNG 2: CÁC GIAO THỨC CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 19 2.1.Cam kết 19 2.2 Khái niệm chứng minh không tiết lộ thông tin 25 2.3 Giao thức Sigma 29 2.3.1 Giao thức định danh Schorr 30 2.3.2 Giao thức Chaum – Pederson 33 2.3.3 Giao thức “hoặc” 36 2.3.4 Giao thức kết hợp 39 CHƯƠNG III: XÁC THỰC TÀI KHOẢN TRỰC TUYẾN DỰA TRÊN CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 43 3.1 Vấn đề an ninh xác thực tài khoản trực tuyến 43 3.2 Lược đồ hệ thống xác thực tài khoản trực tuyến 44 3.3 Đặc tả thành phần hệ thống 47 3.4 Minh họa bước triển khai 50 3.5 Đánh giá 53 KẾT LUẬN, KIẾN NGHỊ VÀ HẠN CHẾ HIỆN TẠI 54 TÀI LIỆU THAM KHẢO 56 MỞ ĐẦU Lý chọn đề tài Ngày Internet trở thành phần thiếu người dân Việt Nam nói riêng người dân giới nói chung Thông tin không ngừng trao đổi, mua bán mạng Internet, việc bảo mật, đảm bảo an toà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 toàn liệu nơi lưu trữ liệu truyền mạng Luận vă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” giao thức an ninh nâng cao mà bên tham gia giao thức không tin cậy lẫn đặc biệt ứng dụng “chứng minh không tiết lộ thông tin” xác thực đăng nhập người dùng internet Chứng minh không tiết lộ thông tin nghiên cứu từ năm 80, phương pháp chứng minh 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 nhiều hiểu biết vật việc, họ thu chút thông tin (coi không) đặc điểm tính chất Ngành mật mã học phát triển không ngừng, phạm vi khóa luận này, 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 Mục đích nghiên cứu - Nghiên cứu lý thuyết làm tảng cho xây dựng hệ thống chứng minh không tiết lộ thông tin - Nghiên cứu số giao thức chứng minh không tiết lộ thông tin, với yêu cầu kỹ thuật khác - Ứng dụng vào toán xác thực trực tuyến, mà không cần truyền mật môi trường mạng không tin cậy Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu: lý thuyết toán học hệ mã khoá công khai, số học modulo, logarit rời rạc, giao thức an ninh nâng cao ứng dụng - Phạm vi nghiên cứu: sở toán học chứng minh không tiết lộ thông tin đưa lược đồ xác thực trực tuyến an toàn Phương pháp nghiên cứu - Nghiên cứu lý thuyết - Trình bày qua ví dụ - Thực nghiệm qua toán thực tế Dự kiến đóng góp - Trình bày sở lý thuyết rõ ràng, có ví dụ minh hoạ lược đồ xác thực trực tuyến chi tiết CHƯƠNG I: CÁC KHÁI NIỆM VÀ KIẾN THỨC CƠ SỞ Nội dung chương bao gồm: lý thuyết modulo, Định lý Fecma, Định lý Euler, Định lý phần dư Trung hoa, logarithm rời rạc, mã công khai RSA chữ ký điện tử DSA 1.1 Số học modulo 1.1.1 Khái niệm 1.1.1.1 Modulo số học Cho n số nguyên dương Giả sử a, b số nguyên: ta ký hiệu a b(mod n), b = a + kn k số nguyên Khi ta nói a b đồng dư với theo modulo n Nếu a số nguyên dương nhỏ n, a gọi phần dư b chia cho n, a gọi thặng dư b theo modulo n Tập hợp số nguyên từ đến n – gọi tập hợp thặng dư hoàn toàn modulo n Điều có nghĩa là, với số nguyên a, thặng dư modulo n số từ đến n – Modulo số học số học bình thường, bao gồm phép cộng nhân giao hoán với tính chất kết hợp phân phối Mặt khác, giảm giá trị trung gian suốt trình tính toán (a + b) mod n = ((a mod n) + (b mod n)) mod n (a – b) mod n = ((a mod n) - (b mod n)) mod n (a  b) mod n = ((a mod n)  (b mod n)) mod n (a  (b +c)) mod n = ((a  b) + (a  c)) mod n Ví dụ 1.1: (1+ 6) mod = ((1 mod 5) + (6 mod 5)) mod (8 14) mod = ((8 mod 6)  (14 mod 6)) mod 1.1.1.2 Số nguyên tố Số nguyên tố số nguyên dương lớn 1, chia hết cho nó, không số chia hết Số số nguyên tố Do 7, 17, 53, 73, 2365247734339 số nguyên tố Số số nguyên tố vô tận Hê ̣mật mã thường dùng số nguyên tố cỡ 512 bits chí lớn 1.1.1.3 Ước số chung lớn Hai số gọi cặp số nguyên tố mà chúng thừa số chung khác 1, hay nói cách khác, ước số chung lớn a n 1, có thể̉ viết sau: Gcd(a,n) = Một cách dễ để tính toán ước số chung lớn hai số nhờ vào thuật toán Euclid Knuth Thuật toán: int UCLN(int a,int b) { return (b==0)?a:UCLN(b, a%b); } int ucln3(int a,int b,int c) { return UCLN(UCLN(a,b),c) } Ví dụ 1.2: Gcd(3,5) = 1.1.2 Các phép toán modulo 1.1.2.1 Số nghịch đảo Modulo Số nghịch đảo 10 1/10, 10  1/10 = Trong số học modulo vấn đề nghịch đảo phức tạp hơn:  x  mod Phương trình tương đương với tìm x k cho: 4x = 7k + với điều kiện x k số nguyên Vấn đề chung đặt tìm x cho: = (a  x) mod n Có thể viết lại sau: a-1  x (mod n) Sư ̣ thu nhỏ vấn đề modulo khó giải Đôi vấn đề, lại Trong trường hợp chung a-1  x (mod n) lời giải a n cặp số nguyên tố Nếu a n cặp số nguyên tố nhau, a-1  x (mod n) lời giải Thuật toán Euclid tính số nghịch đảo số modulo n, thuật toán gọi thuật toán Euclid mở rộng static void update (int *un, int *vn, int q) { int tn; tn=*un – vn*q; *un = *vn; *vn = tn; } int extended euclidian(int u, int v, int u1_out, int u2_out) { int u1 = 1; int u3 = u; int v1 = 0; int v3 = v; int q; while (v3>0) { q = u3/v3; Update(&u1, &v1, q); Update(&u3, &v, q); } 47 3.3 Đặc tả thành phần hệ thống: Các thuật toán dùng dựa giao thức Sigma không tương tác Đây kỹ thuật thường sử dụng để chứng minh kiến thức biến, mà trường hợp này, mật Trong lời giải thích ZKA wzk, lấy người dùng đăng nhập vào Prover máy chủ xác minh thông tin đăng nhập để xác minh Để bắt đầu, số lời giải thích thành phần thuật toán: Thành phần Miêu tả G Đây nhóm cyclic Nhóm chứa tập hợp số mà dựa công thức Đây nhóm có sẵn cho hai Prover (người sử dụng) kiểm tra xác nhận (máy chủ) g0 Phần tử sinh nhóm G Nó phần tử nhóm G Đây biến công khai có sẵn cho hai Prover (người sử dụng) kiểm tra xác nhận (máy chủ) X Hash mật mà người sử dụng nhập vào Y Bút danh người sử dụng Nó sử dụng cho người xác minh tính toán minh chứng kiến thức A T1, rx, zx, c Từ tố ngẫu nhiên tạo cho nỗ lực đăng nhập Các biến sử dụng tính toán Chú giải Các giá trị công khai - biết cho người dùng máy chủ Các giá trị bí mật máy chủ - biết cho Prover, lấy từ giấy chứng nhận xác Các giá trị bí mật người sử dụng - biết đến cho người sử dụng Với kiến thức đó, làm thuật toán làm việc Để thứ đơn giản, bạn nghĩ đến G nhóm số tự nhiên từ {1,2,3,4 }, g0 số ngẫu nhiên tạo nhóm đó, chẳng hạn Tuy nhiên, thuật toán, 48 nhóm cyclic sử dụng, làm cho khó khăn để lấy tính toán logarithm rời rạc (tức tìm x Y = g 0x ) trình là: • Khởi tạo • Đăng ký • Xác thực Khởi tạo: Đây nơi mà khóa công khai tạo Đơn giản, g0 giá trị tạo Để đơn giản, lấy g0 = Đăng ký: Đây nơi mà bút danh người sử dụng tạo Điều đơn giản thực cách băm mật người dùng vào x, tính Y = g 0x Để đơn giản, giả định mật abc giá trị băm Như vậy, x=6 Y = g 0x = 56 Do đó, Y = 15625 Các bút danh Y sau đưa đến máy chủ lưu trữ Xác thực: Trước tiếp tục, nhìn vào bên có Prover (Người sử dụng) Verifier (Máy chủ) g0 g0 Mật Y Sau đây, để H hàm băm, chẳng hạn SHA1 Đối với lý đơn giản lần Hãy giả định tất biến sau số tự nhiên bình thường Quy trình thẩm định 49 STT Prover (Người sử dụng) Verifier (Máy chủ) Sinh số ngẫu nhiên a Nhận a Gửi a x = H (mật khẩu) Tính Y = g 0x Ngẫu nhiên tạo rx Tính T1= g 0rx Tính c = H(Y, T1, a) 10 11 Tính zx = rx – cx 12 Gửi c, zx Nhận c, zx 13 Tính T1  yc g0zx 14 Kiểm tra c = H(Y, T1, a) Các 'ma thuật' công thức xảy bước 14 Nhận thấy cách T1 tính mà kiến thức bí mật tạo ngẫu nhiên rx? Nếu nhìn vào công thức T1 bước bước 13 Bước 8: Bước 14: r T1 = g x z T = Yc g x Chúng ta phải chứng minh rằng: g 0rx =Yc g 0z x Với tham chiếu đến bước bước 11, biết rằng: Bước 5: x Y= g0 Bước 11: zx = rx - cx 50 Vì vậy, cách thực thay đơn giản, chứng minh rằng: g 0rx = Yc g 0z x g 0r x  ( g 0x ) c g 0( r x  c x ) g 0r x  g 0c x g 0rx  c x g 0rx  g 0cx  rx  cx g 0r x  g 0rx (Chứng minh) Với tất yếu tố này, xác minh c = H (Y, T1, a), chứng minh người dùng biết x (xem tài liệu [7]) 3.4 Minh họa bước triển khai 4.1 Đăng ký tài khoản vào mục Register sau: Giả sử ta đăng kí tài khoản sau: - Username: - Password: 51 3.4.2 Đăng nhập chương trình Tại trang đăng nhập ta nhập thông tin user name password đăng ký đồng thời cung cấp số c z Hệ thống tính giá trị số c z đồng thời so sánh với giá trị server login user đưa hình 52 vào trang đăng nhập thành công (mô tả mục số trên) Nếu sai username password báo lỗi để user nhập lại thông tin Minh họa bước triển khai a Lựa chọn tham số hàm: G = Z43, g0 = H(x) = x mod 43 H(x, y, z) = H(x.y.z) b Đăng ký: - Username: demologin, gửi - Password: 123456 - Tính khoá riêng x = H(password) = 123456 mod 43 = - Tính khoá công khai Y = g0x mod 43 = 33 mod 43 = 27 - Lưu (demologin, Y) vào sở liệu Máy chủ c Đăng nhập: - Username: demologin - Nhập Password: 123456 Bước 1: Chọn a = 529 Bước 2: Verifier gửi a cho Prover Bước 4: x = H(mật khẩu) = 123456 mod 43 = Bước 5: Tính Y = g0x mod 43 = 33 mod 43 = 27 Bước 7: Sinh số ngẫu nhiên rx = 936 rx Bước 8: Tính T1 = g mod 43 = 3936 mod 43 = 312 mod 43 = Bước 9:Tính c = H(Y, T1, a) = H(Y.T1.a) = H(27.4.529) = H(57132) = 57132 mod 43 = 28 Bước 11: Tính zx = rx – cx =936 – 28.3 = 852 Bước 12: Prover gửi cho Verifer c, zx   Bước 13: Verifer tính T1  Y c g0zx  33 28 3852  3936  312  Bước 14: Verifier kiểm tra H(Y,T1,a) = H(Y.T1.a) = H(27.4.529) = H(57132) 53 = 57132 mod 43 = 28 = c 3.5 Đánh giá: Trong demo ứng dụng chứng minh không tiết lộ thông tin thực vấn đề sau:  Thể việc biến đổi lý thuyết Chứng minh không tiết lộ thông tin vào mô hình web thực tế sử dụng hàng ngày  Chuyển đổi lý thuyết toán logarit thành ứng dụng code thực tế website xác thực trực tuyến  Dựa vào mô hình login này, hoàn toàn cải thiện áp dụng cho tất website ngôn ngữ cách thay đổi thuật toán việc hash thông tin username, password cách lưu trữ so sánh cặp giá trị bên phía server Việc hoàn toàn không tốn nhiều thời gian cho hệ thống có sẵn  Trong tương lai, ứng dụng hoàn toàn đóng gói thành package để deploy vào hệ thống tái sử dụng nhiều lần TÓM TẮT CHƯƠNG Trong chương 3, Luận văn giới thiệu vấn đề an ninh xác thực tài khoản trực tuyến.Luận văn mô tả lược đồ xác thực tài khoản trực tuyến Đồng thời sâu phân tích đặc tả cụ thể thành phần hệ thống xác thực tài khoản trực tuyến dựa chứng minh không tiết lộ thông tin Cuối cùng, luân văn nêu bước triển khai hệ thống đánh giá tích cực hạn chế hệ thống 54 KẾT LUẬN Luận văn với đề tài “Một số giao thức Chứng minh không tiết lộ thông tin ứng dụng xác thực tài khoản trực tuyến” thực với mục tiêu nhằm sâu phân tích lý thuyết toán học bổ trợ cho chứng minh không tiết lộ thông tin Trong thời đại CNTT bùng nổ, trang web ngày có nhiều chức cho phép người dùng đăng ký, đăng nhập để quản lý tài khoản cá nhân việc đưa phương pháp thiết kế bảo vệ chống đánh cắp thông tin cá nhân ngày phải nâng cao Đề tài vấn đề an ninh phương pháp xác thực mật theo cách truyền thống điểm yếu gặp phải, đưa phương án khắc phục áp dụng theo yêu cầu cụ thể an ninh cho website tổ chức cụ thể sau: - Chính sách quản lý người sử dụng - Chính sách mã hóa bảo mật liệu nhạy cảm - Chính sách lưu phục hồi liệu - Chính sách bảo mật mạng - Xây dựng module theo dõi giám sát để theo dõi hoạt động người dùng giám sát sách an ninh đề Trong trình thực đề tài, có nhiều điểm luận văn cần nghiên cứu hoàn thiện so sánh tốc độ, thời gian truy cập trình mã hóa giải mã, so sánh kết sau tính toán theo công thức logarithm rời rạc Vì thế, mong góp ý thầy cô bạn Trong thời gian tới, mong muốn tiếp tục hoàn thiện đề tài theo lúc phân tích đặt ra, đánh giá ảnh hưởng hệ thống áp dụng sách an ninh, hoàn thiện chức module theo dõi giám sát hy vọng kết nghiên cứu an ninh việc xác thực mật áp dụng cho nhiều trường hợp 55 KIẾN NGHỊ Qua việc nghiên cứu, thiết kế, cài đặt phương pháp xác thực ZKP cho số tổ chức, có số kiến nghị sau: - Các công ty, tổ chức, tập thể có hệ thống website lớn nên xây dựng thực sách an ninh bảo mật, xác thực thông tin người dùng cho riêng nhằm tránh tổn thất, thiệt hại lọt, lộ thông tin - Tăng cường nghiên cứu, thay đổi tìm thuật toán để đáp ứng lại việc hacker có phương pháp nhằm đánh cắp thông tin internet - Thường xuyên theo dõi, kiểm tra lại toàn hệ thống để xử lý cố kịp thời, chống lại xâm nhập, công trái phép kẻ xấu 56 DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phan Đình Diệu, Lý thuyết mật mã An toàn thông tin, 2002 [2] Dương Anh Đức, Mã hóa ứng dụng NXB Đại Học Quốc Gia TP HCM, 2008 [3] Trịnh Nhật Tiến, Trương Thị Thu Hiền, “Về quy trình bỏ phiếu từ xa”, Tạp chí khoa học ĐHQGHN, KHTN&CN, số 2PT, 2005 [4] Trịnh Nhật Tiến, “Giáo trình an toàn liệu”, Đại Học Công Nghệ, Đại học quốc gia Hà Nội,2000 Tiếng Anh [5] A Adelsbach and A.-R Sadeghi Zero-knowledge watermark detection and proof of ownership In Information Hiding, volume 2137 of LNCS, pages 273, Springer, 2001 [6] Cryptography: An Introduction (3rd Edition), Nigel Smart, 2004 [7] Implementing Zero-Knowledge Authentication with Zero Knowledge (ZKA_wzk), Temasek Polytechnic, 2010 [8] José Bacelar Almeida et al “A certifying compiler for zero-knowledge proofs of knowledge based on _-protocols” In: Proceedings of the 15th Europeanconference on Research in computer security ESORICS’10 Athens, Greece: Springer-Verlag, 2010 [9] José Bacelar Almeida et al Full Proof Cryptography: Verifiable Compilation of Efficient Zero-Knowledge Protocols Cryptology ePrint Archive, Report 2012/258 82 [10] Knowledge Protocols, Jeffrey Knapp, 5/18/2009 [11] Module (mathematics) - Wikipedia, the free encyclopedia 57 58 59 60 61

Ngày đăng: 05/09/2016, 15:21

Từ khóa liên quan

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

Tài liệu liên quan