Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
0,94 MB
Nội dung
Chữ ký số ngời xác nhận chối bỏ Đặt vấn đề Khi ứng dụng mạng máy tính ngày trở nên phổ biến, thuận lợi quan trọng yêu cầu an toàn mạng, an ninh liệu mạng ngày trở nên cấp bách cần thiết Nguồn tài nguyên mạng dễ bị đánh cắp phá hỏng chế bảo mật cho chúng sử dụng chế bảo mật lỏng lẻo Thông tin mạng, dù truyền hay đợc lu trữ cần đợc bảo vệ Hoặc thông tin phải đợc giữ bí mật, chúng phải cho phép ngời ta kiểm tra để tin tởng chúng không bị sửa đổi so với dạng nguyên thuỷ chúng ngời nhận gửi cho ta Mạng máy tính có đặc điểm bật có nhiều ngời sử dụng, nhiều ngời khai thác kho tài nguyên, đặc biệt tài nguyên thông tin điểm có ngời sử dụng thờng phân tán mặt địa lý Các điểm thể lợi ích to lớn mạng thông tin máy tính đồng thời điều kiện thuận lợi cho ngời muốn phá hoại an toàn thông tin mạng máy tính Do cách tốt để bảo mật thông tin mã hoá thông tin trớc gửi Mục tiêu mật mã cho phép ngời, thờng đợc đề cập đến nh Alice Bob, liên lạc kênh không an toàn theo cách mà đối thủ Orcar hiểu đợc nói Kênh đờng điện thoại mạng máy tính Thông tin mà Alice muốn gửi đến Bob đợc gọi rõ (plaintext), tài liệu có cấu trúc tuỳ ý Alice mã rõ cách dùng khoá xác định trớc, gửi rõ thu đợc kênh không an toàn Orcar dù thu trộm đợc mã kênh song hiểu đợc rõ gì, nhng Bob ngời biết khoá mã giải mã thiết lập rõ Có hai loại mật mã mật mã bí mật mật mã khoá công khai.Trong mật mã bí mật, ngời muốn trao đổi thông tin cho phải thoả thuận chọn cách bí mật khoá k Từ k suy quy tắc mã hoá e k quy tắc giải mã dk Trong hệ mật này, dk trùng với ek dễ dàng rút từ ek việc tiết lộ ek làm cho hệ thống không an toàn Độ an toàn hệ mật độ an toàn -1- Chữ ký số ngời xác nhận chối bỏ tính toán Trong thực tế, hệ mật an toàn tính toán phơng pháp tốt biết để phá yêu cầu số lớn không hợp lý thời gian tính toán, nghĩa trình thực tính toán phức tạp, phức tạp đến mức ta coi đợc Hệ mật khoá công khai đáp ứng đợc đòi hỏi ý tởng nằm sau hệ mật khoá công khai chỗ tìm hệ mật tính toán để xác định dk biết ek Quy tắc mã ek công khai Hàm mã hoá công khai ek phải dễ dàng tính toán nhng việc giải mã phải khó ngời ngời lập mã Tính chất dễ tính toán khó đảo ngựơc thờng đợc gọi tính chất chiều Muốn giải mã thông báo nhận đợc cách hiệu ta cần có cửa sập chiều Điều đảm bảo độ bí mật cao Mặt khác, mã hoá bao gồm xác thực chữ ký số Xác thực có nhợc điểm bên có chung khoá nên phân xử đợc ngời chối bỏ thông báo họ gửi cho ngời Hơn nữa, mạng có nhiều ngời sử dụng, cặp có khoá thoả thuận nh ngời phải lu giữ n-1 khoá bí mật Khi n đủ lớn, việc phiền phức, phức tạp Chính mà chữ ký số đợc sử dụng nhiều Chữ ký số có nhiệm vụ giống chữ ký tay nghĩa dùng để thực chức xác nhận ngời gửi văn Nó phải vừa mang dấu vết không chối cãi đợc ngời gửi, vừa gắn với bit văn mà thay đổi dù bit văn chữ ký không đợc chấp nhận Nói chung lợc đồ chữ ký không cần đối thoại Nhng số trờng hợp để tăng thêm trách nhiệm việc xác nhận, ngời ta dùng giao thức hỏi- đáp để xác định độ tin cậy chữ ký Trong đồ án sâu tìm hiểu lợc đồ chữ ký chống chối bỏ có ngời xác nhận chữ ký đợc kiểm tra mà không cần đến cộng tác ngời ký mà ngời thứ 3- ngời xác nhận -2- Chữ ký số ngời xác nhận chối bỏ Chơng I TổNG QUAN Về NGÔN NGữ C I.1 Lịch sử hình thành phát triển Ngôn ngữ C Brian W.Kernighan Dennis M.Ritchie phát triển vào đầu năm 70 phòng thí nghiệm BELL ( Hoa Kỳ) với mục đích ban đầu để phát triển hệ điều hành UNIX Bối cảnh đời xuất phát từ nhu cầu cần phải có ngôn ngữ lập trình hệ thống thay cho hợp ngữ (Assembly) vốn nặng nề, độ tin cậy thấp khó chuyển đổi hệ máy tính khác Ngoài việc C đợc dùng để viết hệ điều hành UNIX, ngời ta nhanh chóng nhận sức mạnh C việc xử lý vấn đề đại tin học: xử lý số, văn bản, sở liệu, lập trình hớng đối tợng C trở thành chuẩn Liên quan đến hình thành phát triển ngôn ngữ, kể đến số kiện sau: - Năm 1978, giáo trình dạy lập trình ngôn ngữ C The C programming langguage tác giả ngôn ngữ Brian W.Kernighan Dennis M.Ritchie biên soạn đợc xuất đợc phổ biến rộng rãi - Năm 1983 tiểu ban viện tiêu chuẩn quốc gia Mỹ (ANSI) đợc thành lập nhằm đề xuất chuẩn cho ngôn ngữ C - Năm 1988 chuẩn ANSI C thức đợc ban hành Chuẩn bao gồm mô tả ngôn ngữ theo Brian W.Kernighan Dennis M.Ritchie quy định th viện chuẩn ngôn ngữ C, nhờ tăng tính khả chuyển chơng trình viết C - Trong giới máy vi tính có hệ chơng trình dịch C tiếng nh: Turbo C, Borland C Borland Inc; MSC, VC Microsoft Corp; Lattice C Lattice -3- Chữ ký số ngời xác nhận chối bỏ I Các tính chất đặc trng ngôn ngữ C ngôn ngữ lập trình vạn đợc dùng để viết hệ điều hành nh UNIX nh chơng trình ứng dụng nh quản lý văn bản, sở liệu C ngôn ngữ có mức độ thích nghi cao, gọn không thiết phải cần tới hợp ngữ C độc lập với kiến trúc máy đặc thù với chút thận trọng dễ dàng viết đợc chơng trình khả chuyển (portability) tức chơng trình chạy mà không cần phải thay đổi có thay đổi phần cứng C đợc sử dụng rộng rãi lĩnh vực chuyên nghiệp đáp ứng đợc yêu cầu: hiệu cao soạn thảo chơng trình dịch mã máy; tiếp cận trực tiếp với thiết bị phần cứng C không đa phép toán xử lý trực tiếp đối tợng hợp thành nh đối tợng toàn vẹn; không xác định phơng tiện cấp phát nhớ khác cấp phát tĩnh, cấp phát động theo nguyên tắc xếp chồng cho biến cục hàm; không cung cấp chế I/O, phơng pháp truy nhập tệp Tất chế đợc thực lời gọi hàm th viện C đa kết cấu điều khiển cần cho chơng trình có cấu trúc nh: nhóm câu lệnh, chọn định (if); chu trình với phép kiểm tra kết thúc đầu (for, while), cuối (do while); việc lựa chọn trờng hợp (switch) C cung cấp trỏ khả định địa số học Các đối hàm đợc truyền cách chép giá trị đối hàm đợc gọi thay đổi đợc giá trị đối C cho phép hàm đợc gọi đệ quy biến cục hàm tự động sinh tạo với lần gọi Các định nghĩa hàm không -4- Chữ ký số ngời xác nhận chối bỏ đợc lồng nhng biến đợc khai báo theo kiểu cấu trúc khối Các hàm dịch tách biệt Các biến hàm Hàm biết đợc biến tệp gốc, biến tổng thể extern Các biến tự động đặt ghi để tăng hiệu quả, nhng việc khai báo ghi hớng dẫn cho chơng trình dịch không liên quan đến ghi đặc biệt máy C ngôn ngữ có kiểu mạnh mẽ theo nghĩa PASCAL ALGOL/68 Nó tơng đối thoải mái chuyển đổi liệu nhng không tự động chuyển kiểu liệu cách phóng túng nh PL/I Các chơng trình dịch có không đa chế kiểm tra số mảng, kiểu đối số Mặc dù vậy, C tồn số nhợc điểm nh số phép toán có thứ tự thực cha đúng; số phần cú pháp làm tốt hơn; có nhiều phiên ngôn ngữ, khác vài chi tiết Tóm lại, C tỏ ngôn ngữ hiệu đầy sức diễn cảm nhiều lĩnh vực ứng dụng lập trình Hơn nữa, ta biết hệ mật chuẩn hay chữ ký số cần số lớn tức kích cỡ không gian khoá lớn khoảng 300 số thập phân Do đó, ngôn ngữ C đủ mạnh để đáp ứng đợc điều -5- Chữ ký số ngời xác nhận chối bỏ Chơng II CHữ Ký Số II.1 Giới thiệu chung chữ ký số Nh biết, chữ ký viết tay thờng lệ gắn với tài liệu đợc dùng để ngời ký Chữ ký đợc sử dụng hàng ngày nh để viết th, ký hợp đồng đây, tìm hiểu chữ ký hoàn toàn khác chữ ký số Nó phơng pháp ký thông báo đợc lu dới dạng điện tử thông báo đợc ký truyền mạng máy tính Chữ ký tay chữ ký số dù có nhiệm vụ chung ký nhng có khác chúng Thứ nhất, việc ký tài liệu: Với chữ ký tay chữ ký phận vật lý tài liệu đợc ký Tuy nhiên, chữ ký số không gắn cách vật lý với thông báo đợc ký mà đợc gắn với thông báo theo logic, thuật toán đợc dùng phải trói chữ ký với thông báo theo cách Thứ hai, việc kiểm tra: chữ ký tay đợc kiểm tra cách so sánh với khác, chữ ký xác thực Ví dụ, ngời ký séc mua hàng, ngời bán hàng phải so sánh chữ ký séc với chữ ký nằm sau thẻ tín dụng để kiểm tra Tất nhiên, phơng pháp không an toàn tơng đối dễ đánh lừa chữ ký ngời khác Khác với chữ ký tay, chữ ký số đợc kiểm tra cách dùng thuật toán kiểm tra công khai biết Vì vậy, ngời kiểm tra chữ ký số Và việc sử dụng lợc đồ ký an toàn ngăn chặn khả đánh lừa Điều khác chữ ký tay chữ ký số thông báo số đợc ký đồng với gốc Trong đó, chép tài liệu giấy ký thờng khác với gốc Điều nghĩa phải cẩn thận để ngăn chặn thông báo ký số bị sử dụng lại Ví dụ, Bob ký thông báo số -6- Chữ ký số ngời xác nhận chối bỏ cho quyền Alice rút $100 từ tài khoản nhà băng mình, muốn Alice làm việc lần Do đó, thông báo tự phải chứa thông tin để ngăn chặn Alice làm lại việc nhiều lần Lợc đồ chữ ký số gồm thành phần: thuật toán ký thuật toán kiểm tra Bob ký thông báo x nhờ thuật toán ký (bí mật) Sig Chữ ký thu đợc Sig(x) sau đợc kiểm tra nhờ thuật toán kiểm tra công khai Ver Khi cho cặp (x,y) thuật toán kiểm tra trả lời sai phụ thuộc vào việc chữ ký có đích thực không? II Định nghĩa lợc đồ chữ ký số Lợc đồ chữ ký số năm phần tử (P, A, K, S, V) thoả mãn điều kiện sau: P _ tập hữu hạn thông báo A _tập hữu hạn chữ ký K _tập hữu hạn khoá, không gian khoá Với k K, sigk S verk V Mỗi sigk: P A, verk: P * A {true, false} hàm cho điện x P chữ ký y A thoả mãn: true, false, Ver(x,y) = khi y = sig ( x ) y sig ( x ) *Yêu cầu: - Với khoá k K, hàm sigk verk hàm thời gian đa thức - Verk hàm công khai; sigk hàm bí mật để tránh trờng hợp Orcar giả mạo chữ ký Bob để ký thông báo x Với x Bob tính đợc chữ ký y cho: Ver(x, y) = True Lợc đồ chữ ký phải an toàn Bởi Orcar kiểm tra tất khả chữ ký y nhờ thuật toán kiểm tra công khai Ver đạt đợc yêu cầu tức tìm đợc chữ ký Do đó, có đủ thời gian cần thiết Orcar giả mạo đợc chữ ký Bob Vì mục đích tìm lợc đồ chữ ký cho Orcar không đủ thời gian thực tế để thử nh -7- Chữ ký số ngời xác nhận chối bỏ II Một vài lợc đồ chữ ký số II.3 Lợc đồ chữ ký số RSA Lợc đồ chữ ký RSA đợc định nghĩa nh sau: * Tạo khoá: Cho n = p q; với p, q số nguyên tố lớn khác nhau, (n) = (p - 1)(q 1) Cho P = A = Zn định nghĩa: K = {(n, p, q, a, b): n = p.q; p, q số nguyên tố; ab 1mod (n)} Các giá trị n b công khai; giá trị p, q, a bí mật * Tạo chữ ký: Với K = (n, p, q, a, b) xác định: SigK(x) = xa mod n * Kiểm tra chữ ký: VerK(x, y) = true x yb mod n; x, y Zn Giả sử Bob muốn ký thông báo x, tính chữ ký y cách: y = sigK(x) = xa B modn (aB tham số bí mật Bob) Bob gửi cặp (x, y) cho Alice Nhận đợc thông báo x chữ ký số y, Alice tiến hành kiểm tra đẳng thức: x = yb B modn (bB khóa công khai Bob) Nếu đúng, Alice công nhận y chữ ký x Bob Ngợc lại, Alice coi x Bob gửi cho (chữ ký không tin cậy) Ngời ta giả mạo chữ ký Bob nh sau: chọn y, sau tính x = verK(y), y = sigK(x) Một cách để khắc phục khó khăn việc yêu cầu x phải có nghĩa Do chữ ký giả mạo nói thành công với xác suất nhỏ Ta kết hợp chữ ký với mã hoá làm cho độ an toàn chữ ký tăng thêm -8- Chữ ký số ngời xác nhận chối bỏ Giả sử rằng, Alice tính chữ ký cô ta y = sig Alice(x), sau mã hoá x y cách sử dụng mật mã công khai e Bob Bob, cô ta nhận đợc z = eBob(x, y) Bản mã z đợc truyền tới Bob Khi nhận đợc z, việc trớc tiên giải mã hàm d Bob để nhận đợc (x, y) Sau sử dụng hàm kiểm tra công khai Alice để kiểm tra xem liệu ver Alice(x, y) = true? Nếu Alice mã hoá x trớc sau ký lên mã đợc mã hoá sao? Khi cô ta tính: y = sigAlice(eBob(x)) Alice truyền cặp (z, y) cho Bob Bob giải mã z, nhận đợc x kiểm tra chữ ký y cách sử dụng verAlice Một vấn đề tiềm ẩn biện pháp Orcar có đợc cặp (z, y) kiểu này, thay chữ ký y Alice chữ ký anh ta: y = sigOrcar(eBob(x)) Chú ý Orcar ký mã e bob(x) rõ x Khi đó, Orcar truyền (z, y ) tới Bob, chữ ký Orcar đợc kiểm thử Bob sử dụng verOrcar, Bob suy rõ x xuất phát từ Orcar Điều làm cho ngời sử dụng hiểu nên ký trớc sau tiến hành mã hoá Ví dụ: Giả sử Bob dùng lợc đồ chữ ký số RSA với n = 247 (p = 13, q = 19); (n) = 12.18 = 216 Khoá công khai Bob b = a = 7-1mod216 = 31 Bob công khai (n, b) = (247, 7) Bob ký lên thông báo x = 100 với chữ ký: y = xa modn = 10031 mod247 = 74 Bob gửi cặp (x, y) = (100, 74) cho Alice Alice kiểm tra cách sử dụng khoá công khai Bob nh sau: x = yb modn = 747 mod247 = 100 = x -9- Chữ ký số ngời xác nhận chối bỏ Alice chấp nhận y = 74 chữ ký tin cậy II.3.2 Lợc đồ chữ ký ElGamal Lợc đồ chữ ký số ElGamal đợc giới thiệu năm 1985 đợc Viện tiêu chuẩn Công nghệ quốc gia Mỹ sửa đổi thành chuẩn chữ ký số Lợc đồ ElGamal không tất định giống nh hệ thống mã hoá công khai ElGamal Điều có nghĩa có nhiều chữ ký hợp lệ cho thông báo Thuật toán kiểm tra phải có khả chấp nhận chữ ký hợp lệ xác minh Lợc đồ chữ ký số ElGamal đợc định nghĩa nh sau: * Tạo khoá: Cho p số nguyên tố cho toán lôgarit rời rạc Z p khó giả sử Z p phần tử nguyên thủy * Cho P = Z p , A = Z p ì Zp-1 định nghĩa: * * K = {(p, a, , ): = a modp } Các giá trị p, , công khai, a bí mật * Tạo chữ ký: Với K = (p, a, , ) với số ngẫu nhiên k Z p , định nghĩa:sigk(, ), * đó: = k modp = (x - a) k -1mod(p - 1) * Kiểm tra chữ ký số: Với x, Z p Zp-1, ta định nghĩa: * Ver (x, , ) = True x modp Chứng minh: Nếu chữ ký đợc thiết lập kiểm tra thành công vì: a. r. modp x modp ( a + r x mod(p - 1)) Bob tính chữ ký cách dùng giá trị bí mật a ( phần khoá) lẫn số ngẫu nhiên bí mật k (dùng để ký x) Việc kiểm ta thực - 10 - Chữ ký số ngời xác nhận chối bỏ Theo giả thiết: y1 = g 1x u v v+ g 1v y = g (g 1x )u = g ux = g 1r x Tơng tự: y2 = g x g v y u = g v (g )u = g v+ux = g r2 2 2 Vậy: u = H(my1y2g1g2g 1r g r2 ) Để đơn giản, ta dùng CP(x, y1, y2, g1, g2)(m) biểu thị chữ ký ChaumPetersen thông báo m đợc tạo với khoá bí mật x thoả mãn đẳng thức thuật toán rời rạc y1, y2 với số lần lợt g1, g2 VI.3.4 Phép chứng minh ký tơng tác Fujioka-Okamoto-Ohta đẳng thức Phép chứng minh ký đẳng thức log g (y1) log g (y2) giao thức chứng minh log g (y1) log g (y2) chứng minh log g (y1) log g (y2) Giao 2 thức Fujioka-Okamoto-Ohta chứng minh đẳng thức (hoặc không đẳng thức) thuật toán rời rạc y1, y2 với số lần lợt g1, g2 Giao thức nh sau: V (ngời kiểm tra) C (ngời xác nhận) u, v R Z q u a = g y 1v modp a k, k, w R Z q r1 = g 1k ; r2 = g k ' ' r = g 1k ; r '2 = g k ' r , r ' , r ,r ' , w 2 u, v u a = g y 1v ? z = k (v + w) c z = k (v + w) k ' z ,z v+ g 1z y w = r1 - 46 - Chữ ký số ngời xác nhận chối bỏ v+ g 1z r w = r 1' ' ' z g r v+ w = r '2 = ( g2z y v+ w r2) Ta diễn giải giao thức thành bớc sau: Ngời kiểm tra V chọn u, v ngẫu nhiên Z q tính u a = g y 1v modp, gửi a cho ngời xác nhận C Ngời xác nhận C chọn k, k, w ngẫu nhiên Z q tính ' ' r1 = g 1k ; r2 = g k ; r = g 1k ; r '2 = g k 2 ' Sau gửi r1, r2, r1, r2 cho V Khi nhận đợc r1, r2, r1, r2 C gửi, V gửi lại C hai giá trị u, v Ngời xác nhận nhận đợc u, v kiểm tra đẳng thức u a = g y 1v modp Nếu đúng, C gửi cho V hai giá trị z, z đợc tính nh sau: z = k (v + w) c z = k (v + w) k Ngời kiểm tra V kiểm tra xem đẳng thức sau có xảy hay không? v+ g 1z y w = r1 ' v+ ' g 1z r w = r ' z g r v+ w = r '2 = ( g2z y v+ w r2) Kết thúc giao thức đầu ngời kiểm tra Phép chứng minh trả log g (y1) log g (y2), trả log g (y1) log g (y2) 2 Giao thức đợc ký hiệu nh sau: Bi Proof[log g (y1) log g (y2)] Chú ý: y1, y2 đợc tính nh sau: - 47 - Chữ ký số ngời xác nhận chối bỏ y1 = g1c mod p, y2 = g2c mod p VI.4 Cấu trúc lợc đồ chữ ký ngời xác nhận chối bỏ VI.4.1 Tạo khoá + Ngời ký chọn s R Z q , thiết lập cặp khoá bí mật công khai (S S, PS) với SS = s, PS = gs modp + Ngời xác nhận chọn c R Z q , thiết lập cặp khoá bí mật công khai (SC, PC ) với SC = c, PC = gc modp VI.4.2 Tạo chữ ký Để tạo chữ ký thông báo m, ngời ký S chọn r R Z q , tạo: : = gr, s : = P S , s+c : = (PSPC) r , gs : = PS, gs+c : =PSPC r Sau S tính = CP(r, , s+c, g, gs+c)(m) = S(sr, g, s)(1) Chữ ký ngời ký thông báo m là: = (1, 2) VI.4.3 Kiểm tra chữ ký Đầu tiên ngời kiểm tra kiểm tra độ tin cậy (1, 2) với chữ ký Chaum-Petersen đẳng thức thuật toán rời rạc tin cậy thông báo m chữ ký Schnorr tin cậy Ngời kiểm tra dừng kiểm tra dẫn đến kết không tin cậy Ngợc lại, ngời kiểm tra tiếp tục kiểm tra chữ ký nh sau: - Đối với ngời ký: Đầu v ngời kiểm tra (SVer(SS), VVer())(m, , PS, PC) đợc tính: v = Bi-Proof [log (s) logg(gs)] Trong giao thức ngời ký đóng vai trò ngời chứng minh - Đối với ngời xác nhận: Đầu v ngời kiểm tra (CVer(SC), VVer())(m, , PS, PC) đợc tính: v = Bi-Proof [logg (gc ) log (c)] Trong giao thức phép chứng minh ký này, ngời xác nhận giữ nhiệm vụ nh ngời chứng minh c = s+c /s - 48 - Chữ ký số ngời xác nhận chối bỏ Trong kiểm tra ngời ký ngời xác nhận, ngời kiểm tra chấp nhận chữ ký v =1 VI.4.4 Giải thích cấu trúc trực giác Ta thấy cấu trúc này, ngời ký có khoá bí mật s, khoá công khai gs, ngời xác nhận có khoá bí mật c, khoá công khai gc Giá trị gs+c đợc tính: gs+c =PS.PC = gsgc (vì gs = PS, gc = PC ) Chữ ký ngời xác nhận chối bỏ gồm chữ ký 1, Trong chữ ký Chaum-Petersen đợc tạo với khoá bí mật r = r, kiểm tra với khoá công khai = gr s+c = g s+c ; chữ ký Schnorr đợc tạo với khoá bí r mật r2 = rs, kiểm tra với khoá công khai s = g s r Bằng trực giác thấy rằng, chữ ký luận chứng tri thức khoá bí mật Nh ngời tạo 1, ngời phải có tri thức r1, r2 Nếu ngời chứng minh r2 = r1s nghĩa chữ ký tin cậy Có cách để chứng minh r2 = r1s nh sau: * Cách 1: Chứng minh rằng: log g(gs) log (s) Cách yêu cầu tri thức logg (gs ), thực ngời ký * Cách 2: Chứng minh rằng: log g(gc ) = log (s+c /s) Cách yêu cầu tri thức logg(gc), đợc thực ngời xác nhận VI.5 Phép phân tích an toàn Để cấu trúc an toàn, giả sử lợc đồ chữ ký Schnorr chữ ký Chaum-Petersen dựa vào đẳng thức thuật toán rời rạc an toàn Phép chứng minh ký tơng tác Fujioka-Okamoto-Ohta đẳng thức an toàn, đắn chứng cớ phân biệt đợc Phép chứng minh an toàn đợc chứng minh mô hình Oracle ngẫu nhiên Dới chứng minh cấu trúc chữ ký ngời xác nhận chối - 49 - Chữ ký số ngời xác nhận chối bỏ bỏ giả mạo, phân biệt đợc kiểm tra chữ ký quán VI.5.1.Chữ ký giả mạo Định nghĩa Đặc tính giả mạo chữ ký vững Ngoại trừ với xác suất không đáng kể, không tồn thuật toán thời gian đa thức theo xác suất A mà sinh chữ ký thông báo đặc biệt m, kiểm tra với khoá công khai y truy cập đến chữ ký Oracle tất khoá công khai y* cho tất thông báo cần truy cập đến y để đợc thông báo m thông báo m*, chữ ký Oracle khoá công khai y * sinh chữ ký * m* kiểm tra với y* Bằng trực giác, đặc tính giả mạo chữ ký vững có nghĩa truy cập đến chữ ký Oracle tất chữ ký công khai tin cậy cho tất thông báo cần chữ ký mong muốn, sinh chữ ký dới khoá công khai mong muốn, thông báo mong muốn m Định nghĩa thuyết phục khái niệm chữ ký an toàn chuẩn Nó tơng đơng an toàn đối lập với lựa chọn thích hợp đặc tính công văn mật mã lợc đồ giải mã Do lợc đồ chữ ký giả mạo vững thoả mãn đặc tính giả mạo chữ ký vững Bổ đề: Chữ ký = (1, 2) chữ ký qua đợc kiểm tra = CP(r, , s+c, g, gs+c)(m), = S(sr, g, s)(1) r1 = r2 Chứng minh: Nếu tin cậy, đợc thành lập = CP(r, , s+c, g, gs+c)(m), = S(sr, g, s)(1) Còn lại chứng tỏ r1 = r2 Chúng ta giả sử s khác Chữ ký đợc coi tin cậy trải qua hai bớc thử kiểm tra, kiểm tra ngời xác thực kiểm tra ngời ký Kiểm tra ngời xác nhận phải thực phép chứng minh ký Bi Proof [logg(gc) log (c)] Do c = c c = s+c/ s Hơn r1 1, tồn r1 sr2, xem rằng: s+c =g s+c = g(s+c)r , s = gsr - 50 - Chữ ký số ngời xác nhận chối bỏ c = g cr = g ( s+c ) r / g sr 1 g sr =g sr Vì s r1 = r2 Với trờng hợp kiểm tra ngời ký tơng tự nh Định lý: Trong mô hình Oracle ngẫu nhiên, chữ ký ngời xác nhận chối bỏ giả mạo Chứng minh: Theo bổ đề trên, chữ ký + tin cậy +1 = CP(r1, , s+c, g, gs+c)(m), +2 = S(sr2, g, s)(+1) r1 = r2 Điều có nghĩa tồn thời gian đa thức đối thủ A thành công tạo 1+ + , sau A phải biết r1, r2s khoá bí mật s Vì có viễn cảnh A giả mạo + mà không cần truy cập đến khoá bí mật s để đạt đợc 1+ + Giả sử A đạt đợc 1+ , + hình thành từ chữ ký * = ( 1+ , * ) Theo bổ đề trên, điều có nghĩa * , 2 + đựoc tạo khoá bí mật r 2s A biết bí mật để tạo * Điều 2 mâu thuẫn với đặc tính giả mạo vững VI.5.2 Chữ ký phân biệt Định nghĩa 4: (chữ ký bị giả mạo) * Cho x, gy = gy gz = gz, chữ ký giả mạo * = ( , * ) thông báo m đợc tính: * * = CP(x, X, Xy+c, g, gy+c) * = S(z, g, yz)( ) Trong c, gc khoá bí mật công khai ngời xác nhận, X = gx, Xy+c = g x y+ c gy+c = gygc Chữ ký nh đợc đặt dới mô hình Oracle ngẫu nhiên Phần đầu chữ * ký luôn đợc thành lập biết x Phần chữ ký *2 , chữ ký Schnorr kiểm tra dùng khoá công khai g z = gz Chữ ký Schnorr (u,v) - 51 - Chữ ký số ngời xác nhận chối bỏ đợc giả mạo mô hình Oracle ngẫu nhiên Điều đợc thực cách chọn u,v ngẫu nhiên Oracle ngẫu nhiên giả mạo cách mà có đầu u với đầu vào (myggvyu) Định lý: Trong mô hình Oracle ngẫu nhiên, tồn ngời giả mạo A mà phân biệt chữ ký tin cậy từ chữ ký giả mạo đợc tạo dùng định nghĩa thời gian đa thức theo xác suất có thuật toán giải vấn đề Diffie Hellman thời gian đa thức theo xác suất Chứng minh: Giả sử có đối thủ A mà phân biệt chữ ký tin cậy từ chữ ký giả mạo * dùng thông tin công khai Ký hiệu tập hợp tất (a, gb, gcab = c) D ( a, gb, gc aR Z q ) * X Lấy t* = (x1, gy, gz ) D, t+ = (x2, gy, gz ) X Theo định nghĩa chữ ký giả mạo, A tạo chữ ký giả mạo *, + lần lợt từ t*, t+ đay khoá công khai ngời ký gy Theo bổ đề phần [VI 1], * chữ ký tin cậy, + chữ ký không tin cậy Ngoài thuận lợi A phân biệt * từ + không đáng kể phân biệt t* t+ Vì A có khả nhận biết chữ ký xác từ * +, nói t* t+ hình thành từ D A giải đợc vấn đề Diffie Hellman VI.5.3 Tính quán kiểm tra chữ ký Theo bổ đề phần [VI 1], chữ ký tin cậy s+c /s = c s = s Nó không phức tạp để tơng quan đối lập, nói cách khác đạt đợc s+c /s = c s = s phép chứng minh hợp lý tri thức đẳng thức, chữ ký tin cậy, chữ ký Vì tính quán kiểm tra chữ ký tuân theo tính đắn hợp lý phép chứng minh ký tri thức VI Chữ ký ngời xác nhận chối bỏ mù quáng ứng dụng - 52 - Chữ ký số ngời xác nhận chối bỏ VI Cấu trúc Giao thức chữ ký ngời xác nhận chối bỏ mù quáng gồm đặc thù chữ ký Schnorr mù quáng đặc thù chữ ký Chaum Petersen đẳng thức mù quáng thực song song với Cấu trúc nh sau: Ngời nhận Ngời ký p, r1, r2 R Z q r, r1, r2 R Z q = gr s = gsr s+c = g s+c r w2 = g r w1 = g r W1 = g rs+c , , , w , w ,ƯW s +c s 11 = p s = sp s+ c p = s+ c w2 = w2p g r w1 = w1p g r 1 = W1p g r1 v = H(m s s+ c w2w1 ) u = v/p u v1 = r1 u(r) v2 = r2 u(rs) v1 ,v = v1p + r1 - 53 - Chữ ký số ngời xác nhận chối bỏ = v2p + r2 +1 = (v, , , s+ c , w1, 1) +2 = (v, , s , w2) Trong cấu trúc này, chữ ký ngời xác nhận chối bỏ mù quáng = (+1, +2), đánh lạc hớng đặc thù tơng tác giao thức tạo chữ ký từ tạo = CP(r, , s+c, g, gs+c)(m), = S(sr, g, s)(1) để tạo +1 = CP(rp, , s+c, g, gs+c)(m), +2 = S(srp, g, s)(+1) = p , s = s p s+c = s+c Ngời trung gian tức ngời nhận chữ ký giao thức biết giá trị p p Điều không phức tạp để kiểm tra +1 chữ ký Chaum Petersen tin cậy thông báo m +2 chữ ký Schnorr tin cậy thông báo (m+1) Do + = (+1, +2) chữ ký ngời xác nhận chối bỏ tin cậy VI Lợc đồ trả trớc leo thang Chúng ta quen với hệ thống trả tiền trớc để mua sản phẩm nh đặt mua tạp chí, truyền hình cáp Hiện nay, với phát triển mạnh mẽ công nghệ thông tin giao lu thông tin ngày trở nên phổ biến mạng truyền thông ngời ta nghĩ tới hoạt động kinh doanh mạng Internet Các hoạt động thơng mại dịch vụ trực tuyến Internet đòi hỏi phải nhanh có phơng thức trả tiền đạt hiệu cao Giải pháp phổ biến micropayment nghĩa ngời sử dụng trả số tiền nhỏ cho tong sản phẩm mua trực tuyến Giải pháp lựa chọn trả trớc, ngời sử dụng trả trớc với dịch vụ số tiền cố định gọi lệ phí hàng năm Ngời sử dụng sau đợc cấp giấy chứng nhận trả trớc mà cho phép truy cập đến sản phẩm dịch vụ Sự thuận lợi dịch vụ trả trớc micropayment giảm lợng lớn trình tiến hành công việc mua bán giao dịch mua sản phẩm định giá nhỏ Trong thực tế, không xảy việc ngời cung cấp dịch vụ cung cấp tát dịch vụ mong - 54 - Chữ ký số ngời xác nhận chối bỏ muốn tới ngời sử dụng Ngoài bất tiện với ngời sử dụng phải giữ mã số giấy chứng nhận trả trớc, sản phẩm ngời sử dụng phải giữ giấy chứng nhận trả trớc điều gây phiền toái cho ngời sử dụng Giải pháp mong muốn liên hiệp công ty lớn ngời cung cấp dịch vụ để cung cấp nhiều loại khác dịch vụ trực tuyến Trong thứ tự truy cập đến dịch vụ này, ngời sử dụng cần giấy chứng nhận đặt trớc với mà trả tiền lệ phí cố định hàng năm Khi ngời sử dụng truy cập đến tất dịch vụ cung cấp thành phần liên hiệp công ty Chữ ký mù quáng dùng để thiết kế hệ thống trả trớc với quyền riêng t ngời sử dụng Trong mô hình này, giấy chứng nhận trả trớc đa chữ ký ngời xác nhận chối bỏ mù quáng ngời quản lý liên hiệp công ty Để truy cập tới dịch vụ trực tuyến, ngời sử dụng chứng tỏ giấy chứng nhận trả trớc tin cậy với ngời cung cấp dịch vụ, ngời có vai trò ngời xác nhận lợc đồ chữ ký Thuận lợi cách giảm trách nhiệm lợng lớn trình tiến hành công việc mua bán việc trả lợng nhỏ khi, chí cung cấp quyền riêng t cho ngời sử dụng Kết luận Ngày nay, với phát triển khoa học công nghệ đại Công nghệ thông tin, ngành mật mã có bớc phát triển mạnh mẽ, đạt đ- 55 - Chữ ký số ngời xác nhận chối bỏ ợc nhiều kết lý thuyết sâu sắc tạo sở cho việc phát triển giải pháp bảo mật, an toàn thông tin lĩnh vực hoạt động ngời Đặc biệt u điểm chữ ký số Chữ ký số đợc biết đến trao đổi thông tin ngày phổ biến mạng truyền thông nơi mà chữ ký tay phát huy tác dụng Trong đồ án này, tìm hiểu lợc đồ chữ ký số ngời xác nhận chối bỏ Tuy nhiều điểm cần phải nghiên cứu hoàn thiện nhng thời gian trình độ hiểu biết hạn chế nên không tránh khỏi nhợc điểm, mong góp ý Thầy, Cô bạn Cuối cùng, em xin chân thành cảm ơn thầy giáo TS Nguyễn Ngọc Cơng tận tình bảo, hớng dẫn giúp em hoàn thành đồ án Tài liệu tham khảo TS Nguyễn Ngọc Cơng Bài giảng An toàn thông tin 1999 Nguyễn Thị Mời Phơng Luận văn thạc sĩ - 2003 - 56 - Chữ ký số ngời xác nhận chối bỏ D.R Stinson Cryptography Theory and Practice, CRC press 1995 Moti Yung Weaknesses of undeniable Signature Schemes David Chaum Designated Confirmer Signatures Khanh Nguyen, Yi Mu, Vijay Varadharajan Undeniable Confirmer Signature - 57 - Chữ ký số ngời xác nhận chối bỏ Mục lục Lời nhận xét Mục lục Đặt vấn đề Chơng I: Tổng quan ngôn ngữ C I.1 Lịch sử hình thành phát triển I.2 Các tính chất đặc trng ngôn ngữ Chơng II: Chữ ký số II Giới thiệu chung chữ ký số II.2 Định nghĩa lợc đồ chữ ký số II.3 Một số lợc đồ chữ ký số II.3.1 Lợc đồ chữ ký RSA II.3.2.Lợc đồ chữ ký ElGamal Chơng III: Hàm Hash 11 15 III.1 Giới thiệu 15 III.2 Định nghĩa 16 III.3 Một số hàm Hash sử dụng lợc đồ chữ ký số 16 III.3.1.Các hàm Hash đơn giản 16 III.3.2 Kỹ thuật khối xích 18 III.3.3 Các hàm Hash mở rộng 18 III.3.4 Hàm Hash MD4 19 Chơng IV: Chữ ký chống chối bỏ 25 IV.1 Giới thiệu 25 IV.2 Lợc đồ chữ ký số chống chối bỏ 25 IV.2.1 Thuật toán ký 25 IV.2.2 Giao thức kiểm tra 26 IV.2.3 Giao thức chối bỏ 27 IV.3 Các định lý 29 IV.3.1 Định lý 29 - 58 - Chữ ký số ngời xác nhận chối bỏ IV.3.2 Định lý 30 IV.3.3 Định lý 31 IV.4 Vấn đề cần giải 33 Chơng V: Chữ ký ngời xác nhận đợc định 35 V.1 Giới thiệu 35 V.2 Hệ thống sở 37 V.3 Giao thức ký 38 V.3.1 Tạo khoá 38 V.3.2 Tạo chữ ký 38 V.3.3 Giao thức kiểm tra 39 V.4 Giao thức xác nhận 40 V.5 Giao thức chuyển đổi 41 V.6 Tổng quát 42 Chơng VI: Chữ ký ngời xác nhận chối bỏ 43 VI.1 Giới thiệu 43 VI.2 Mô hình chữ ký ngời xác nhận chống chối bỏ 44 VI.3 Các lợc đồ chữ ký phép chứng minh ký tơng tác 46 VI.3.1 Ký hiệu 46 VI.3.2 Lợc đồ chữ ký Schnorr 46 VI.3.3 Chữ ký Chaum Petersen dựa vào đẳng thức thuật toán rời rạc 46 VI.3.4 Phép chứng minh ký tơng tác Fujioka Okamoto Ohto đẳng thức 47 VI.4 Cấu trúc 49 VI.4.1 Tạo khoá 49 VI.4.2 Tạo chữ ký 49 VI.4.3 Kiểm tra chữ ký 49 VI.4.4 Giải thích cấu trúc lợc đồ chữ ký trực giác 50 VI.5 Phép phân tích an toàn 50 - 59 - Chữ ký số ngời xác nhận chối bỏ VI.5.1 Chữ kýkhông thể giả mạo 51 VI.5.2 Chữ ký phân biệt đợc 52 VI.5.3 Tính quán kiểm tra chữ ký 53 VI.6 Chữ ký ngời xác nhận chối bỏ mù quáng ứng dụng 54 VI.6.1 Cấu trúc 54 VI.6.2Lợc đồ trả trớc leo thang 55 Kết luận 57 Tài liệu tham khảo 58 - 60 -