1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay

57 3 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

Tiêu đề Một Số Thuật Toán Ký Và Xác Nhận Chữ Ký Điện Tử Hiện Nay
Tác giả Hoàng Thị Thanh Liễu
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 57
Dung lượng 611,6 KB

Nội dung

Đề tài: “Một số thuật toán ký xác nhận chữ ký đIện tử nay” LỜI NÓI ĐẦU Truyền thông mạng đã, phổ biến hoạt động kinh tế xã hội Thông tin truyền nhanh chóng, tiện lợi Người ta “nói chuyện” với nhau, giải trí nhau, mua bán trao đổi với mạng, cách xa hàng trăm ngàn số Việc mua bán mạng thực nào? Với giao dịch mua bán bình thường, người mua người bán xác nhận đồng ý mua bán cách ký tay vào cuối hợp đồng mua bán Vì cách người ta phải thể chữ ký họ kẻ khác giả mạo Mọi cách chép văn thường bị phát dễ bị phân biệt với gốc Mua bán mạng thực theo cách thức tương tự Nghĩa người gửi người nhận phải “ký” vào hợp đồng mua bán Một số văn khác cần phải xác nhận trách nhiệm người gửi văn gửi tức họ phải “ký” vào văn trước gửi Nhưng “ký” văn truyền qua mạng nào, tất nội dung văn biểu diễn dạng số hoá (chỉ dùng hai số – ta gọi văn loại văn số) Việc giả mạo chép lại văn số hồn tồn dễ dàng khơng thể phân biệt gốc với Hơn nữa, văn số bị cắt dán, lắp ghép hồn tồn ta khơng thể phân biệt gốc với Vậy chữ ký cuối văn loại chịu trách nhiệm toàn nội dung văn Chữ ký thể trách nhiệm toàn văn bản? Chắc chắn chữ ký phải ký bít văn Như thơng tin mạng bị lấy cắp, bị cắt dán, lắp ghép mà văn cần ký tên hay cần xác nhận người gửi văn lại văn quan trọng (nhất lĩnh vực quân sự, ngân hàng, thương mại điện tử), cần bảo vệ an toàn truyền mạng Mã hố thơng tin giúp bảo vệ thơng tin an tồn Trở lại câu hỏi “ký” văn số thực nào? Thực chất việc ký điện tử mã hoá Việc xác nhận chữ ký kiểm nghiệm việc mã hoá có khơng Luận văn em vào nghiên cứu tìm hiểu số thuật tốn ký xác nhận chữ ký thực chất thuật toán mã hố việc kiểm tra việc mã hố Hồng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chƣơng I Một số khái niệm sở Trình bày khái niệm làm sở cho lý thuyết mã hố thơng tin ký điện tử Chƣơng II Vấn đề mã hố Trình bày khái niệm chung hệ mật mã hệ mã khố cơng khai - hệ mật mã RSA Chƣơng III Vấn đề ký điện tử Nghiên cứu chung số sơ đồ chữ ký, bao gồm số thuật toán ký, giao thức chối bỏ, giao thức kiểm thử Chƣơng IV Một thử nghiệm ký điện tử theo sơ đồ chữ ký RSA Thử nghiệm mã hố thơng tin theo hệ Mật mã RSA ký điện tử theo sơ đồ chữ ký RSA Trong chương trình thử nghiệm, việc mã hoá ký văn với chữ tiếng Anh Việc sử dụng với chữ khác (như chữ tiếng Việt) tương tự Chương trình viết ngơn ngữ Turbo C/C++ Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƢƠNG I MỘT SỐ KHÁI NIỆM CƠ SỞ 1 Kí hiệu khái niệm * Kí hiệu chia hết: Cho a b hai số nguyên dương - Số a chia hết cho số b ký hiệu a  b  Tồn n  N cho a = b*n, - Khi người ta nói b ước a ký hiệu: b | a * Ước số chung lớn nhất: Cho a b hai số nguyên dương - Ước số chung lớn a b số tự nhiên m lớn cho m | a m | b Khi ký hiệu ƯCLN(a, b) = m * Hai số nguyên tố nhau: Cho a b hai số nguyên dương - Số a số b gọi nguyên tố  ƯCLN (a, b) = *Đồng dư modulo: Cho n  N, n  a, b  Z n* Kí hiệu a  b (mod n) nghĩa a đồng dư với b theo mod n  tồn số nguyên k  Z n* cho a = b+k*n Tức (a-b) = k*n, n | (a-b) * Một số tính chất đồng dƣ modulo: (ab) (mod n)  [(a mod n) (b mod n)] (mod n) (a*b) (mod n)  [(a mod n) *(b mod n)] (mod n) Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com * Khái niệm Nhóm: Nhóm cặp (G, *), G tập hợp khác rỗng, * phép tốn hai ngơi G thoả mãn ba điều kiện sau: Phép tốn có tính kết hợp: (x*y)* z = x*(y*z) với x, y, z G Có phần tử phần tử trung lập e  G: x*e = e*x = x với x  G Với xG, có phần tử nghịch đảo x‟ G: x*x‟ = x‟*x = e * Nhóm Cyclic: - Nhóm G gọi nhóm Cyclic sinh phần tử Tức có phần tử g  G mà phần tử a  G tồn số n  N để gn = a - Khi g gọi phần tử sinh hay phần tử ngun thuỷ nhóm G Ví dụ: Nhóm cộng Z gồm số nguyên nhóm Cyclic có phần tử sinh - Cấp G số phần tử G G có hữu hạn phần tử,  G có vơ hạn phần tử Ví dụ: Nhóm cộng Z gồm số ngun nhóm Cyclic vơ hạn - Nếu khơng tồn số tự nhiên n để gn =e G có cấp  - Trong trường hợp ngược lại, tồn số tự nhiên nhỏ n mà g n = e G gồm n phần tử khác nhau: e, g, g 2, g3, , gn-1 Khi G gọi nhóm Cyclic hữu hạn cấp n Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Phần tử   G gọi có cấp d d số nguyên dương nhỏ cho d = e Nó có cấp  = e Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chính lẽ trên, nhóm Cyclic cịn định nghĩa sau: - Nhóm G gọi nhóm Cyclic tồn số g cho phần tử G luỹ thừa nguyên g * Nhóm con: Cho G nhóm, cho S  G S   - S gọi nhóm G Phần tử trung lập e G nằm S S khép kín luật hợp thành G (tức x*y  S với x, y S) S khép kín phép lấy nghịch đảo G (tức x -1  S với xS) * Kí hiệu: Zn = 0, 1, 2, , n-1 Tức Zn tập số nguyên không âm < n Tập với phép cộng lập thành nhóm Cyclic có phần tử sinh Đó nhóm hữu hạn có cấp n Z n* = e  Zn, e nguyên tố với n Tức e # - Đó tập số nguyên dương < n, nguyên tố với n - Z n* gọi tập Thặng dư thu gọn theo mod n, lập thành nhóm với phép nhân mod n (n) số phần tử tập Z n* * Một số kết quả: Những kết sau chứng minh, nhắc lại để sử dụng - Định lý Lagrange: Cho G nhóm cấp n g G Khi Cấp g ước n - Hệ quả: Giả sử g Z n* có Cấp m m ước (n) Nếu b  Z n* b(n)  (mod n) Nếu p số nguyên tố (p) = p-1 Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Do với b  Z *p (tức b nguyên tố với p) b(p)  (mod n) hay bp -1  (mod n) - Định lý: Nếu p số ngun tố Z *p nhóm Cyclic Chú ý Theo định nghĩa ta có: phần tử   Z n* có cấp d d số nguyên dương nhỏ cho d = e Z n* , tức d  (mod n) Hoàng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Logarit rời rạc * Khái niệm Logarit rời rạc: Cho p số nguyên tố,  phần tử nguyên thuỷ Zp,  Z *p Logarit rời rạc việc giải phương trình x = log   (mod p) với ẩn x Hay phải tìm số x cho: x   (mod p) - Bổ đề: Nếu (a, n) = tồn a-1  Zn thoả mãn a * a-1  (mod n) - Định lý (Euler tổng quát): Nếu (a, n) = a(n) mod n = - Hệ quả: Với p số nguyên tố (a, p) = ap-1 (mod p) = 1 Thặng dƣ bậc hai ký hiệu Legendre * Thặng dư bậc hai: Cho p số nguyên tố lẻ, x số nguyên dương  p-1 x gọi thặng dư bậc hai mod p, phương trình y2  x mod p có lời giải * Kí hiệu Legendre: Cho p số nguyên tố lẻ, a số nguyên dương ký hiệu Legendre sau: a  mod p a = b 1, a thặng dư bậc hai mod p 1, trường hợp cịn lại Hàm phía hàm cửa sập phía Hàm f(x) gọi hàm phía tính y = f(x) “dễ”, tính x = f -1 (y) lại “khó” Ví dụ: Hàm f(x) =  x (mod p), với p số nguyên tố lớn, ( phần tử nguyên thuỷ mod p) hàm phía - Hàm f(x) gọi hàm cửa sập phía tính y = f(x) “dễ”, Hồng Thị Thanh Liễu - K42 C LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com tính x = f -1 (y) lại “khó” Tuy nhiên có cửa sập z để tính x = f -1 (y) “dễ” Ví dụ: Hàm f(x) = xa (mod n) (với n tích hai số nguyên tố lớn n = p*q) hàm phía Nếu biết a n tính x = f -1(y) khó biết cửa sập p q tính f-1(y) dễ Thuật tốn tính nghịch đảo Cho a  Z n* , a-1 gọi nghịch đảo a  a*a-1 (mod n) = Một số thuật tốn tính nghịch đảo: Cho a-1 chạy từ đến n-1 đến a*a-1 (mod n) = Nếu biết  (n) cần tính: a-1  a (n)-1 (mod n) Dùng thuật toán Euclidean mở rộng sau: Đầu vào: b n Đầu ra: - nghịch đảo b theo mod n tồn tại, - không tồn Đặt n0 = n; b0 = b; t0 = 1; t1 = 1; q = n0/b0; r = n0 - q*b0; while(r>0) { t2 = t0- q*t1; if(t20 ) t2 = t2 mod n; else t2 = n- (- t2 mod n); t = t1 ; t = t2 ; n = b0 ; b0 = r; q = n0/b0; r = n0- q *b0; } if(b0 = = 1) return t mod n; else return 0; Hoàng Thị Thanh Liễu - K42 C 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ví dụ 7: Ta lấy p = 463,  = phần tử sinh nhóm P cấp q = 233, lấy a = 121 Khi ta có  =  a mod 467 = 4121 mod 467 = 422 G chọn khóa (p, , a, ) = (467, 4, 121, ), a = 121 bí mật Chữ ký G văn x = 229 là: y = 229121 mod 467 = Giả sử N muốn dùng giao thức kiểm thử để biết y có chữ ký B văn x hay không N chọn ngẫu nhiên e = 48, e2 = 213, tính c = 116, B trả lời lại d = 235 N thử điều kiện d  x *  (mod p) e Tức : e 22948*4213  235 mod 467 Đồng dư thức N chấp nhận chữ ký G 229 Giả sử G gửi văn x = 226 với chữ ký y = 183 Giao thức chối bỏ thực sau: N chọn ngẫu nhiên e1 = 47, e2 = 137, tính c = 306; G trả lời lại d = 184 G thử điều kiện Tức : 22647*4137  145 mod 467, Vì 184  145, N lại tiếp tục tính bước giao thức N chọn ngẫu nhiên f1 = 225, f2 = 19 tính C = 348, G trả lời D = 426 N lại tính 226225*419  295 mod 467 Vì 295  426, N thực bước cách tính : (d*  -e2)f1  (184 * -137)225  79 mod 467 (D*  -f2)e1  (426 * -19)47  79 mod 467 Hai giá trị Kết luận chữ ký khơng Hồng Thị Thanh Liễu - K42 C 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sơ đồ chữ ký Fail - Stop Sơ đồ chữ ký Fail-Stop ngăn chặn việc giả mạo hữu hiệu Nếu H giả mạo chữ ký G G chứng minh chữ ký giả mạo Sơ đồ xây dựng năm 1992 van Heyst Pedersen Đây chữ ký lần (tức khoá cho trước ký lần văn bản) Hệ gồm thuật toán ký, thuật toán kiểm thử chứng minh tính giả mạo Giả sử p số nguyên tố cho toán log rời rạc Zp khó, p = 2*q+1, q số nguyên tố,   Zp* phần tử cấp q  a0  q-1    mod p Các giá trị p, q, ,  công khai, a0 bảo mật Đặt P = Zq A = Zq  Zq Khố có dạng K = (1, 2, a1, a2, b1, b2) Với a1, a2, b1, b2  Zq 1 = a1*a2 mod p 2 = b1*b2 mod p Với x  Zq, ta định nghĩa: Sigk(x) = (y1, y2) Với y1 = a1 + x*b1 mod q y2 = a2 +x*b2 mod q Để kiểm thử ta tính Hoàng Thị Thanh Liễu - K42 C 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com verk (x, y) = true     2x   y1 *  y2 (mod p) Hình 8: Thuật tốn ký kiểm thử sơ đồ chữ ký Fail - Stop Để chữ ký G thoả mãn điều kiện kiểm thử, ta trở lại vấn đề bảo mật cách làm việc sơ đồ Ta định nghĩa khoá (1, 2, a1, a2, b1, b2) (1‟, 2‟, a1‟, a2‟, b1‟, b2‟) 1 = 1‟ 2 = 2‟ Bổ đề: Giả sử khoá k k' ver k (x, y) = true verk’(x, y) = true Giả sử k = (1, 2, a1, a2, b1, b2) k‟ = (1‟, 2‟, a1‟, a2‟, b1‟, b2‟) với    a1 *  a2 (mod p)   a1 *  a2 (mod p) ' '    b1 *  b2 (mod p)   b1 *  b2 (mod p) ' ' Giả sử văn x ký cách sử dụng khoá k cho ta y = (y 1, y2) với y1 = a1 + x*b1 mod q y2 = a2 +x*b2 mod q Sau ta kiểm tra y cách sử dụng khoá k‟:   *     a1  b1 *  a2  b2 (mod p) ' ' ' '   a1 *  a2 * ( b1 *  b2 ) x (mod p) ' ' ' '     2x (mod p) Do y kiểm thử cách sử dụng khố k‟ Bổ đề: Hồng Thị Thanh Liễu - K42 C 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giả sử k khoá, y = sigk(x) Khi có q khố k' = k thoả mãn y = sigk'(x) Chứng minh: giả sử 1, 2 k công khai Ta phải xây dựng (a1‟, a2‟, b1‟, b2‟) thoả mãn:    a1 *  a2 (mod p)    b1 *  b2 (mod p) y1 = a1 + x*b1 (mod q) y2 = a2 + x*b2 (mod q) Nếu  phần tử sinh P, tồn cặp c 1, c2, a0 cho:    e1 (mod p)    e2 (mod p)    a0 (mod p) Đây điều kiện cần đủ để thoả mãn hệ phương trình đồng dư c1  a1 + a0 *a2 (mod q) c2  b1 + a0 *b2 (mod q) y1  a1 + x *b1 (mod q) y2  a1 + x *b2 (mod q) Ta viết dạng ma trận sau:  a0  0 1  0   a1   c1       a0   a2   c2  *  x   b1   y1       x   b2   y  Cấp ma trận hệ số (cấp ma trận số hàng độc lập tuyến tính mà có cấp định thức lớn có giá trị khác 0) Có thể Hồng Thị Thanh Liễu - K42 C 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com đưa ma trận hệ số dạng tam giác tính đồng thời tìm ma trận cấp có định thức  Hoặc tính: r1 +x*r2 -r3 -a0 *r4 = (0, 0, 0, 0) Với ri hàng thứ i ma trận Có cách giải sử dụng khoá k Khi cấp ma trận 3, số chiều không gian lời giải 4-3 = có q lời giải Tương tự ta có hệ 6, bỏ qua chứng minh Bổ đề : Giả sử k khoá, y = sigk(x) verk (x‟, y‟) = true Với x‟  x có nhiều khoá k cho y = sigk‟(x) y‟ = sigk‟(x‟) Phải hiểu hệ nói tính bảo mật sơ đồ Cho y chữ ký văn x, có q khố ký x để y Nhưng với x‟  x, khoá q tạo q chữ ký khác văn x‟ CHƢƠNG VI THỬ NGHIỆM KÝ ĐIỆN TỬ BẰNG CHƢƠNG TRÌNH Chƣơng trình mã hố RSA Chương trình có menu sau: Vào rõ Xem rõ Xem số hoá Xem mã Giải mã văn Về rõ Thốt Q trình mã hố sau: Hoàng Thị Thanh Liễu - K42 C 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bản rõ  chuyển số hoá  mã hoá  giải mã Các văn sinh sau: “Banro”  “sohoa” ”vbma”  “vbgiai”  “vesohoa”  “vebanro” Sơ đồ thực theo bước: Đầu tiên G chuyển "banro" (là văn cần ký) thành "sohoa" viết lại văn theo quy ước lại bảng ký tự Dùng hàm lập mã để mã hoá văn "sohoa" "vbma" G gửi "vbma" khoá cho N N dùng hàm giải mã với khoá biết để giải mã "vbma" "vesohoa", văn trùng với văn "sohoa" Cuối dùng ngược lại quy ước bảng ký tự để "banro" ban đầu Đầu vào sơ đồ văn Trong văn sử dụng chữ tiếng Anh gồm 52 ký tự hoa (từ A đến Z) thường (từ a đến z), chữ số (từ đến 9), dấu cách („ ‟), dấu xuống dòng, số dấu câu(, : ? !), tất 70 ký tự Ta gọi q trình chuyển số hố Thực phương pháp mã hố cổ điển Quy ước: ký tự mã chuyển ký tự mã ký tự mã chuyển chuyển A 00 A 26 52 B 01 B 27 53 Z 25 Z 51 61 „‟ 62 „\n‟ 63 , 64 Hoàng Thị Thanh Liễu - K42 C 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 65 ! 68 ? 66 : 67 Tiếp theo, G mã hoá văn vừa tạo Văn dài ngắn tuỳ ý G “chia” văn để mã hố Trong ví dụ G mã hoá cặp ký tự Sử dụng thuật toán mã hoá RSA Chọn số nguyên tố p q cách sử dụng hàm ramdom() sau sử dụng thuật tốn Solovay – Strassen để thử tính ngun tố Hồng Thị Thanh Liễu - K42 C 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương trình viết sau: // Hàm trả lại n số nguyên tố // Trả lại trường hợp ngược lại int isprime(unsigned long n){ unsigned long ret1, ret2, a; ramdomize(); a = ramdom(n); ret1 = legendre(a, n); ret2 = xpmodn(a, (n-1)/2, n); if(ret1 = = ret2) return 1; return 0; } Trong hàm legendre xpmodn khai báo sử dụng sau: Hàm legendre: Khai báo: unsigned long legendre(unsigned long a, unsigned long b): Sử dụng: Tính legendre ( an ) Hàm xpmodn: Khai báo: unsigned long xpmodn(unsigned long x,unsigned long p,unsigned long n); Sử dụng: Là hàm trả lại giá trị xp mod n Như p q chọn "ngẫu nhiên" Thực giả ngẫu nhiên (do tính chất hàm random()) Chẳng hạn chọn p = 83, q = 89  (n) = 11*41*8 = 7216, n = 7387 Chọn b cho ƯCLN(b, (n) = 1) Hoàng Thị Thanh Liễu - K42 C 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com  ta chọn b không chia hết cho 11, 41 Chọn b = 9*17 = 153  a = b-1 = 4905 Hoàng Thị Thanh Liễu - K42 C 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hàm nghịch đảo tính sau: unsigned long nghichdao(unsigned long a, unsigned long n) { unsigned long i; for(i = 2;i

Ngày đăng: 11/10/2022, 14:47

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ hệ mật mã RSA - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
Hình 1 Sơ đồ hệ mật mã RSA (Trang 14)
Ta hình dung một quá trình ký, nhận và kiểm thử như sau: - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
a hình dung một quá trình ký, nhận và kiểm thử như sau: (Trang 18)
Hình 2: Sơ đồ chữ ký RSA Chú ý  - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
Hình 2 Sơ đồ chữ ký RSA Chú ý (Trang 19)
Hình 3: Sơ đồ chữ ký ElGamal - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
Hình 3 Sơ đồ chữ ký ElGamal (Trang 22)
Hình 6: Sơ đồ chữ ký không phủ định đƣợc Chaum - van Antverpen - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
Hình 6 Sơ đồ chữ ký không phủ định đƣợc Chaum - van Antverpen (Trang 39)
Hình 7: Giao thức chối bỏ - Một số thuật toán ký và xác nhận chữ ký điện tử hiện nay
Hình 7 Giao thức chối bỏ (Trang 40)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w