1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phương pháp chứng minh không tiết lộ thông tin và ứng dụng

84 14 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 84
Dung lượng 841,24 KB

Nội dung

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 nhiều suốt trình tìm hiểu nghiên cứu hồn thành 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ố 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 Đồng thời em xin chân thành cảm ơn thầy cô môn nhƣ thầy cô trƣờng trang bị cho em kiến thức cần thiết để em hồn thành tốt khóa luận Em xin gửi lời cảm ơn đến thành viên lớp CT1001, ngƣời bạn bên cạnh động viên, tạo điều kiện thuận lợi em tìm hiểu, hồn thành tốt 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 khóa luận Hải Phịng, tháng năm 2010 Sinh viên thực LÂM THỊ THANH TUYỀN MỤC LỤC LỜI NÓI ĐẦU Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 MỘT SỐ KHÁI NIỆM TOÁN HỌC .2 1.1.1 Các khái niệm số học .2 1.1.1.1 Ƣớc chung lớn .2 1.1.1.2 Số nguyên tố 1.1.1.3 Hàm  Euler .4 1.1.1.4 Đồng dƣ thức .4 1.1.2 Các khái niệm đại số 1.1.2.1 Không gian Zn .5 1.1.2.2 Nhóm nhân Zn* 10 1.1.2.3 Phần tử sinh .11 1.1.2.4 Thặng dƣ 11 1.1.3 Khái miệm độ phức tạp thuật toán 12 1.1.3.1 Khái niệm thuật toán 12 1.1.3.2 Khái niệm độ phức tạp thuật toán .12 1.1.3.3 Lớp toán P, NP NP – complete .14 1.2 VẤN ĐỀ MÃ HÓA 16 1.2.1 Một số khái niệm .16 1.2.2 Mã hóa khóa đối xứng .17 1.2.3 Mã hóa khóa bất đối xứng .18 1.3 VẤN ĐỀ CHỮ KÝ SỐ (digital signature) .20 1.3.1 Khái niệm 20 1.3.2 Quá trình tạo chữ ký điện tử 21 1.3.3 Hàm băm sử dụng ký điện tử 21 Chương PHƢƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 22 2.1 KHÁI NIỆM CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 22 2.1.1 Khái niệm chứng không tiết lộ thông tin (CM KTLTT) 22 2.1.2 Khái niệm chứng minh tƣơng hỗ 23 2.2 HỆ THỐNG CM KTLTT CHO TÍNH ĐẲNG CẤU CỦA ĐỒ THỊ .25 2.2.1 Khái niệm đồ thị đẳng cấu .25 2.2.2 Định nghĩa hệ thống CM KTLTT hoàn thiện 28 2.2.3 Định nghĩa hệ thống CM KTLTT hồn thiện khơng điều kiện .31 2.2.4 Định lý hệ thống chứng minh tƣơng hỗ cho đồ thị đẳng cấu .33 2.3 HỆ THỐNG CM KTLTT CHO BÀI TOÁN THẶNG DƢ BẬC HAI 35 2.3.1 Sơ đồ chứng minh 35 2.3.2 Tính chất sơ đồ 35 2.3.3 Chứng minh sơ đồ có tính đầy đủ 36 Chương ỨNG DỤNG CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 37 3.1 ỨNG DỤNG CM KTLTT TRONG BỎ PHIẾU ĐIỆN TỬ 37 3.1.1 Sơ đồ bỏ phiếu truyền thống 37 3.1.2 Một số khái niệm .39 3.1.3 Chứng minh tính hợp lệ phiếu (x, y) (Giao thức 1) 41 3.1.4 Chứng minh quyền sở hữu giá trị bí mật β (Giao thức 2) .45 3.1.5 Giai đoạn cử tri chuyển phiếu đến ban kiểm phiếu (phƣơng án 2) .47 3.2 ỨNG DỤNG CM KTLTT TRONG SỬ DỤNG TIỀN ĐIỆN TỬ 49 3.2.1 Khái niệm toán điện tử 49 3.2.2 Khái niệm tiền điện tử .49 3.2.3 Mô hình giao dịch mua bán tiền điện tử 50 3.2.4 Vấn đề “tiền điện tử” .53 3.2.5 Lƣợc đồ tiền điện tử Brand 56 Chương THỬ NGHIỆM CHƢƠNG TRÌNH .63 4.1 MƠ TẢ CHƢƠNG TRÌNH 63 4.1.1 Giới thiệu 63 4.1.2 Các chức 64 4.2.1 Cử tri chứng minh tính hợp lệ phiếu .68 4.2.2 Ngƣời xác minh trung thực chứng minh có giữ tham số bí mật  76 TÀI LIỆU THAM KHẢO 80 DANH MỤC TỪ VIẾT TẮT Ký hiệu viết tắt Giải thích CT Cử tri ƢCLN Ƣớc chung lớn gcd(m, n) Ƣớc chung lớn m n KP Kiểm phiếu TT Ngƣời trung thực CM KTLTT Chứng minh không tiết lộ thông tin TMĐT Thƣơng mại điện tử TTĐT Thanh toán điện tử Prover Ngƣời chứng minh Verifier Ngƣời xác minh LỜI NĨI ĐẦU Ngày nay, cơng nghệ thơng tin phát triển mạnh mẽ, Internet trở thành phần thiếu sống hàng ngày hoạt động trao đổi thơng tin, mua bán,…trên mạng Internet diễn thƣờng xuyên ngày phổ biến Chính 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 nhu cầu cấp 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 gồm có chƣơng với nội dung: Chƣơng CÁC KHÁI NIỆM CƠ BẢN Chƣơng PHƢƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN Chƣơng ỨNG DỤNG CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN Chƣơng THỬ NGHIỆM CHƢƠNG TRÌNH “Chứng minh khơng tiết lộ thơng tin”, 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 Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 MỘT SỐ KHÁI NIỆM TOÁN HỌC 1.1.1 Các khái niệm số học 1.1.1.1 Ước chung lớn 1/ Ƣớc số Khái niệm: Cho hai số nguyên a, b  Z, b ≠ Nếu có số nguyên q cho a = b*q, ta nói a chia hết cho b, kí hiệu b|a Ta nói b ƣớc a, a bội b Ví dụ: Cho a = 6, b = 2, ta có = 2*3, ký hiệu 2|6 Ở ƣớc bội Tính chất: Cho a, b, c  Z + a|a + a|b, b|c  a|c + a|b, a|c  a|(bx + cy)  x, y  Z + a|b, b|a  a =  b 2/ Ƣớc chung lớn Khái niệm ước chung lớn nhất: Số nguyên d đƣợc gọi ƣớc chung số nguyên a1, a2,…, an, ƣớc tất số Một ƣớc chung d > số nguyên a1, a2,…, an, ƣớc chung a1, a2,…, an ƣớc d, d đƣợc gọi ƣớc chung lớn (ƢCLN) a1, a2,…, an Ký hiệu d = gcd(a1,a2,…, an) hay d = ƢCLN(a1, a2,…, an) Khái niệm nguyên tố nhau: Nếu gcd(a1,a2,…, an) = 1, số a1, a2,…, an đƣợc gọi nguyên tố Ví dụ: Cho a = 12, b = 15, gcd(12, 15) = Hai số 13 nguyên tố gcd(8, 13) = Tính chất: + d = gcd(a1, a2,…, an) tồn số x1, x2,…, xn cho: d = a1x1+a2x2+…+anxn Đặc biệt: a1, a2,…, an nguyên tố  tồn số x1, x2,…, xn cho: = a1x1 + a2x2 + … + anxn + d = gcd(a1, a2,…, an)  gcd(a1/d, a2/d,…, an/d) = + gcd(m.a1, m.a2,…, m.an) = m * gcd(a1, a2,…, an) (với m  0) + Nếu b > 0, a = b.q +r gcd(a, b) = gcd(b, r) 3/ Thuật tốn Euclide tìm ƣớc chung lớn Bài toán: * Dữ liệu vào: Cho hai số nguyên không âm a, b, a  b * Kết quả: gcd(a, b) Thuật tốn: (Mơ ngơn ngữ Pascal) Readln(a, b); While b>0 Begin r := a mod b; a := b; b := r; end; Writeln(a); Ví dụ: a = 30; b = 18; gcd(30, 18) = gcd(18,12) = gcd(12, 6) = gcd(6, 0) = Bảng 1: Mơ tả bước tính: gcd(30, 18) a b r a = b.q +r 30 18 12 30 = 18 * + 12 18 12 18 = 12 * + 12 12 = * + 1.1.1.2 Số nguyên tố Khái niệm: Số nguyên tố số tự nhiên lớn có hai ƣớc Ví dụ: Các số 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 số nguyên tố Số số nguyên tố chẵn Tính chất: + Nếu p số nguyên tố p|a.b ta có a|p b|p a b chia hết cho p + Có vô số số nguyên tố 1.1.1.3 Hàm  Euler Định nghĩa: Cho n ≥ 1, đặt  (n) số số nguyên khoảng [1, n] nguyên tố với n Hàm  nhƣ đƣợc gọi hàm phi-Euler Tính chất: + Nếu n số nguyên tố  (n) = n-1 + Nếu gcd(n, m) = 1,  (n.m) =  (n)  (m) + Nếu n  p1e p2e pke , thừa số nguyên tố n thì:  (n)  n(1  k 1 )(1  ) (1  ) p1 p2 pk 1.1.1.4 Đồng dư thức 1/ Định nghĩa: Nếu a b số nguyên, a đƣợc gọi đồng dƣ với b theo modulo n, đƣợc viết a ≡ b (mod n) n chia hết (a - b) Số nguyên n đƣợc gọi modulus đồng dƣ 2/.Ví dụ: 24 ≡ (mod 5) 24 − = 3*5 −11 ≡ 17 (mod 7) −11 − 17 = −4*7 3/ Một số tính chất đồng dƣ thức: 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 (1) + a ≡ a (mod n) (tính phản xạ) (2) + Nếu a ≡ b (mod n) b ≡ a (mod n) (tính đối xứng) (3) + Nếu a ≡ b (mod n) b ≡ c (mod n) a ≡ c (mod n) (tính bắc cầu).(4) + Nếu a ≡ a1 (mod n) b ≡ b1 (mod n) a + b ≡ a1 + b1 (mod n) (5) a.b ≡ a1b1 (mod n) Lớp tƣơng đƣơng số nguyên a tập hợp số nguyên đồng dƣ với a theo modulo n Theo tính chất (2), (3), (4) ta thấy: cho n cố định đồng dƣ với n không gian Z vào lớp tƣơng đƣơng (phân hoạch) Nếu a  qn  r ,  r  n a  r (mod n) Vì vậy, số nguyên a đồng dƣ theo modulo n với số nguyên tập hợp Zn = {0, 1, 2,…, n-1} đƣợc gọi thặng dƣ nhỏ theo modulo n Cũng vậy, a r thuộc lớp tƣơng đƣơng Do đó, r đơn giản đƣợc sử dụng để thể lớp tƣơng đƣơng 1.1.2 Các khái niệm đại số 1.1.2.1 Không gian Zn 1/ Định nghĩa: Các số nguyên theo modulo n, đƣợc ký hiệu Zn, tập (lớp tƣơng đƣơng của) số nguyên {0, 1, 2, , n-1} Tập Zn đƣợc coi tập hợp tất lớp tƣơng đƣơng theo modulo n Trên tập Zn xác định phép cộng, trừ, nhân theo modulo n 2/ Ví dụ: Z25= {0, 1, 2, …, 24} Trong Z25: 13 + 16 = 4, 13 + 16 = 29 ≡ (mod 25) Tƣơng tự: 13*16 = Z25 3/ Các phép tốn khơng gian modulo: Cho n số nguyên dƣơng Nhƣ trƣớc, phần tử Zn đƣợc thể số nguyên {0, 1, 2,…, n-1} Nhận xét rằng: a, b  Zn thì:  a  b nêú a  b  n a  b  n nêú a  b  n  a  b  mod n   Vì vậy, phép cộng modulo (và phép trừ modulo) đƣợc thực mà khơng cần thực phép chia dài Phép nhân modulo a b đƣợc thực phép nhân thông thƣờng a với b nhƣ số ngun bình thƣờng, sau lấy phần dƣ kết sau chia cho n Phép tính nghịch đảo Zn đƣợc thực nhờ sử dụng thuật toán Euclidean mở rộng 4/ Định lý phần dƣ China CRT Giả sử số nguyên n1 , n2 , , nk số nguyên tố cặp hệ phƣơng trình đồng dƣ:  x1  a1 (mod n1 )  x  a (mod n )  2 có nghiệm theo modulo n Với n  n1.n2 .nk    xk  ak (mod nk ) 5/ Thuật toán Gausse Nghiệm có hệ phƣơng trình đồng dƣ định lý phần dƣ China đƣợc cho biểu thức: k x   Ni M i mod n i 1 Trong đó, Ni = n/ni; Mi = M i  Ni1 mod n ; (có Mi Ni ni nguyên tố với nhau) * Ví dụ: Cặp phƣơng trình đồng dƣ x  (mod 7) x  (mod13) có nghiệm x  59 (mod91) * Tính chất: Nếu gcd(n1, n2) = cặp đồng dƣ x  a (mod n1 ) x  a (mod n2 ) có nghiệm x  a (mod n1n2 ) 2) Giao thức Ngƣời xác minh trung 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 1: Ngƣời xác minh trung thực TT điền tham số đầu vào tính tốn, sau ngƣời xác minh trung thực TT gửi Beta w thông qua (a, b) cho Ban KP: Người xác minh trung thực TT chọn Beta w 66 Bƣớc : Ban KP trả lại giá trị c ngƣời xác minh trung thực TT tính tốn r gửi r cho Ban KP Người xác minh trung thực TT tính r Bƣớc : Ban KP 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, Ban KP không chấp nhận Ban KP kiểm tra lại kết 67 4.2 MÃ NGUỒN CỦA CHƢƠNG TRÌNH 4.2.1 Cử tri chứng minh tính hợp lệ phiếu #include #include #include #include #include struct ARRAY { long A[10]; int chiso; }; ARRAY getArrayAj(int g,ARRAY d,ARRAY r,int Gi,int w,long x,int k); ARRAY getArrayBj(long h,ARRAY d,ARRAY r,int Gi,int w,long y,int k); int check(int g,long h,ARRAY a,ARRAY b,ARRAY d,ARRAY r,long x,long y,int c,int Gi); long getAi(int g,int w); long getBi(long h,int w); int getDi(ARRAY &d,int c,int Gi,int k); int getRi(int w,int alpha,int di); void addDi(ARRAY &d,int Gi,int di); void addRi(ARRAY &r,int Gi,int ri); void nhapARRAYd(ARRAY &d,int k,int Gi); void nhapARRAYr(ARRAY &r,int k,int Gi); 68 // Lấy mảng a ARRAY getArrayAj(int g,ARRAY d,ARRAY r,int Gi,int w,long x,int k) { ARRAY a; a.chiso=d.chiso=r.chiso=k; for(int i=1;i

Ngày đăng: 06/04/2021, 18:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w