Tìm hiểu về chữ ký điện tử và viết ứng dụng minh họa
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN XÂY DỰNG PHẦN MỀM ỨNG DỤNG ĐỀ TÀI: Tìm hiểu chữ ký điện tử viết ứng dụng minh họa GVHD : Mạnh Thiên Lý Nhóm SVTH : Nguyễn Huy Lân - 2001110104 Lê Minh Luận - 2001110025 TP HỒ CHÍ MINH – 2014 MỤC LỤC Chương 1: Chữ ký điện tử 1.1 Giới thiệu 1.2 Khái niệm chữ ký điện tử 1.3 So sánh chữ ký điện tử với chữ ký thông thường văn 1.4 Vị trí, vai trò chữ ký số điện tử 1.5 Sơ đồ tống quan hệ thống chữ ký số điện tử 1.6 Quy trình sử dụng chữ ký điện tử 2.1 Hàm băm 11 2.1.1 Tính chất hàm băm 11 2.1.2 Hàm băm MD5 12 Hình 2.1: Sơ đồ vòng lặp MD5 14 2.2 Thuật toán RSA 18 2.2.1 Khái niệm hệ mật mã RSA 19 2.2.2 Phân phối khoá công khai RSA 20 2.2.2.1 Mã hóa 22 2.2.2.2 Giải mã 22 2.3 Một số tính chất hệ RSA 26 2.4 Độ an toàn hệ RSA 27 2.5 Một số biến thể hệ mã hóa RSA 28 2.6 Đánh giá RSA 28 Chương : Hướng dẫn cài đặt sử dụng phần mềm 31 3.1 Cài đặt 31 Hình 3.1 Giao diện cài đặt phần mềm 31 Hình 3.2 Chọn “I accept the agreement” nhấn next 31 Hình 3.3 Tiếp tục chọn next cài đặt xong 32 Hình 3.2 Hướng dẫn sử dụng phần mềm 32 Hình 3.5 Giao diện ký văn 33 Hình 3.6 Giao diện xác nhận văn 33 DANH MỤC HÌNH ẢNH Hình 1: Tạo chữ ký kiểm tra chữ ký 11 Hình 2.1: Sơ đồ vòng lặp MD5 15 Hình 2.2: Sơ đồ bước thực mã hoá theo thuật toán RSA 21 Hình 2.3: Mô tả thực RSA 24 Hình 3.1 Giao diện cài đặt phần mềm 30 Hình 3.2 Chọn “I accept the agreement” nhấn next 30 Hình 3.3 Tiếp tục chọn next cài đặt xong 31 Hình 3.4 Giao diện phần tạo khóa 32 Hình 3.5 Giao diện ký văn 33 Hình 3.6 Giao diện xác nhận văn 33 MỞ ĐẦU Với bùng nổ mạng Internet nay, mạng máy tính ngày đóng vai trò thiết yếu lĩnh vực hoạt động toàn xã hội, trở thành phương tiện điều hành hệ thống nhu cầu bảo mật thông tin đặt lên hàng đầu Để giải vấn đề xác nhận chữ ký truyền thống (ký tay) kinh doanh mua bán, việc áp dụng công nghệ thông tin thay đổi giúp tối ưu việc xử lý bảo mật văn giao dịch Người ta đưa cách giải hiệu áp dụng chữ ký điện tử vào công việc Đề tài “Tìm hiểu chữ ký điện tử viết ứng dụng minh họa” tìm hiểu vấn đề nêu cài đặt chương trình ký số minh họa Những vấn đề nhóm chúng em tìm hiểu viết ứng dụng minh họa bao gồm: Tìm hiểu chữ ký điện tử Tìm hiểu phương pháp mã hóa bất đối xứng ứng dụng chữ ký điện tử Tìm hiểu hàm băm MD5 Tìm hiểu hệ mã hóa công khai RSA Chương 1: Chữ ký điện tử 1.1 Giới thiệu Trong đời sống hàng ngày, chữ ký văn minh chứng “bản quyền” “tán đồng”, thừa nhận nội dung văn việc mua bán, ký kết xã hội Chữ ký viết tay văn dùng để xác nhận người ký Những yếu tố làm nên sức thuyết phục, mặt lý tưởng bao gồm: Chữ ký chứng thể người ký có chủ định ký văn Chữ ký thể “chủ quyền”, làm cho người nhận văn biết người ký văn Chữ ký “tái sử dụng”, tức phần văn mà chép sang văn khác Văn ký thay đổi Chữ ký giả mạo thứ chối bỏ ( người ký văn phủ định việc ký văn người khác tạo chữ ký ) Để có đặc tính trên, giao thức “ký giới điện tử” cần phải có hỗ trợ công nghệ mã hóa Sơ đồ chữ ký số phương pháp ký thông báo lưu dạng điện tử: Người gửi (chủ nhân văn bản) ký văn cách mã hóa với khóa bí mật Người gửi chuyển văn ký cho người nhận Người nhận văn kiểm tra chữ ký việc sử dụng chìa khóa công khai người gửi để giải mã văn 1.2 Khái niệm chữ ký điện tử Chữ ký điện tử thông tin kèm theo liệu (văn bản, hình ảnh, video…) nhằm mục đích xác nhận người chủ liệu Chữ ký điện tử sử dụng giao dịch điện tử Xuất phát từ thực tế, chữ ký điện tử cần đảm bảo chức năng: xác định người chủ liệu 1.3 So sánh chữ ký điện tử với chữ ký thông thường văn Chữ ký điện tử chữ ký thường có nhiều điểm khác nhau: Về tài liệu ký: Với tài liệu thông thường, phần vật lý tài liệu Ngược lại, chữ ký điện tử theo kiểu vật lý gắn vào thông báo nên không nhìn thấy điện Về vấn đề kiểm tra chữ ký: Chữ ký thông thường kiểm tra cách so sánh với chữ ký xác thực khác (chữ ký mẫu) Điểm yếu chữ ký thông thường không an toàn, dễ giả mạo Ngược lại, chữ ký điện lại kiểm tra nhờ dùng thuật toán kiểm tra công khai, kiểm tra Việc dùng sơ đồ chữ ký an toàn ngăn chặn giả mạo 1.4 Vị trí, vai trò chữ ký số điện tử Xu hướng quốc tế hóa toàn cầu hóa ảnh hưởng đến phát triển giới Việc trao đổi thông tin từ yêu cầu nhanh gọn, xác đặc biệt phải an toàn Việc trao đổi thông tin, chứng thực thông tin theo phong cách truyền thống làm giảm tốc độ, xác thông tin Những cộng việc mang tính chất thủ công gây chậm trễ thiếu xác trao đổi Chính khó khăn nảy sinh phát triển mạnh mẽ công nghệ thông tin công nghệ mã hóa Hiện nay, tất nước phát triển phát triển, mạng máy tính ngày đóng vai trò thiết yếu lĩnh vực hoạt động toàn xã hội nhu cầu bảo mật thông tin đặt lên hàng đầu Điển hình việc mã hóa bảo mật thông tin số doanh nghiệp, dùng chữ ký số xác thực email trao đổi thông tin, kiểm soát truy cập vào sàn thương mại điện tử đơn đặt hàng, ngân hàng điện tử, mua sắm trực tuyền… mà vai trò chủ yếu chữ ký số điện tử Trên thực tế, chữ ký điện tử không thực cho giao dịch điện tử mạng Internet mà qua hệ thống mạng viễn thông di động Đặc biệt, nhiều nước giới không triển khai ứng dụng chữ ký điện tử mạng máy tính mà áp dụng mạng điện thoại di động để thực giao dịch điện tử Hướng giúp đẩy nhanh giao dịch, đơn giản hóa mua sắm trực tuyến giúp người dùng truy cập lúc, nơi Sự đời chữ ký điện tử khẳng định lợi ích to lớn chiến lược kinh tế, đồng thời vấn đề liên quan đến chữ ký điện tử chủ đề quan trọng mật mã học 1.5 Sơ đồ tống quan hệ thống chữ ký số điện tử Một sơ đồ chữ ký điện tử (P,A,K,S,V) thỏa mãn điều kiện đây: - P tập hữu hạn điện (thông điệp, rõ) - A tập hữu hạn chữ ký - K tập hữu hạn khóa - S tập thuật toán ký - V tập thuật toán xác minh Với khoá K € k tồn thuật toán ký SigK € S thuật toán xác minh VerK € V Mỗi Sigk: P → A verK: P x A → {TRUE, FALSE} hàm cho điện x € P chữ ký y € A thoả mãn phương trình đây: True y = sig(x) Ver (x, y) = False y ≠ sig(x) Với k thuộc K, hàm SigK VerK hàm thời gian đa thức, Verk hàm công khai Sigk hàm mật - Ý nghĩa sơ đồ: Khi người dùng muốn ký lên thông báo x người dùng thuật toán an toàn để tạo chữ ký y = sig(x) nhận gửi cho người nhận Người nhận nhận chữ ký sig(x) dùng thuật toán xác minh ver(x,y) để xác định tính đắn chữ ký số (trả true false) 1.6 Quy trình sử dụng chữ ký điện tử Chữ ký điện tử hoạt động dựa hệ thống mã hóa khóa công khai Hệ thống mã hóa gồm hai khóa, khóa bí mật khóa công khai Mỗi chủ thể co cặp khóa vậy, chủ thể giữ khóa bí mật, khóa công khai chủ thể đưa công cộng để biết Nguyên tắc hệ thống mã hóa khóa công khai mã hóa khóa bí mật khóa công khai giải mã thông tin ngược lại, mã hóa khóa công khai, có khóa bí mật giải mã Ngoài ra, chữ ký đảm bảo phát giác thay đổi liệu “ký” Để ký lên văn bản, phần mềm ký nghiền liệu để gói gọn vài dòng, gọi thông báo tóm tắt, tiến trình gọi “kỹ thuật băm”, tạo thành chữ ký điện tử Cưới cùng, phần mềm ký tên gắn chữ ký điện tử vào văn Ví dụ: Giả sử bên A có tài liệu P cần ký Bên A thực băm văn thành tóm lược X, sau dùng khóa bí mật ký lên tóm lược X để văn chữ ký điện tử Y, say gửi tài liệu P kèm theo chữ ký Y cho A Giả sử B muốn xác nhận tài liệu P A, với chữ ký mã Y Bên B dùng khóa công khai A để xác nhận chữ ký Y A ký văn P gửi có hay không, xác nhận chữ ký Y A ký văn P, ngược lại ký thay đổi Một số trường hợp xảy với chữ ký điện tử, giống trường hợp xảy với chữ ký truyển thống Ví dụ: Khi tài liệu A bị thay đổi (dù ký tự, dấu chấm, hay ký hiệu bất kỳ), B xác nhận, thấy giải mã khác với tài liệu anh A B kết luận tài liệu bị thay đổi, tài liệu A ký Trường hợp khác, A để lộ khóa bí mật, nghĩa văn tài liệu A ký người khác có khóa bí mật A Khi xác nhận tài liệu cho A ký, chữ ký hợp lệ, A ký Như vậy, chữ ký A không giá trị pháp lý Do đó, việc giữ khóa bí mật tuyệt đối quan trọng hệ thống chữ ký điện tử Trong trường hợp ví dụ trên, A có cặp khóa để ký văn bản, tài liệu số Tương tự vậy, B hay sử dụng chữ ký điện tử, có cặp khóa Khóa bí mật giữ riêng, khóa công khai đưa công cộng Vậy vấn đề đặt làm để biết khóa công khai thuộc A, B hay người Hơn nữa, giả sử môi trường giao dịch Internet, cần tin cậy cao, A muốn giao dịch với nhân vật X X A cần trao đổi thông tin cá nhân cho nhau, thông tin gồm họ tên, địa chỉ, số điện thoại, email… Vậy để A chắn giao dịch với nhân vật X khác giả mạo X? Chứng số tạo để giải vấn đề này! Chứng số có chế để xác nhận thông tin xác đối tượng sử dụng chứng số Thông tin A X xác nhận bên trung gian mà A X tin tưởng Bên trung gian nhà cung cấp chứng số CA (Certificate Authority) CA có chứng số riêng mình, CA cấp chứng số cho A X đối tượng khác Trở lại vấn đề trên, A X có cách kiểm tra thông tin dựa chứng số sau: A giao dịch với X, họ chuyển chứng số cho nhau, đồng thời họ có chứng số CA, phần mềm máy tính A có chế để kiểm tra chứng số X có hợp lệ không, phần mềm kết hợp chứng số nhà cung cấp CA chứng X để thông báo cho A tính xác thực đối tượng X Nếu phần mềm kiểm tra thấy chứng X phù hợp với chứng CA, A tin tưởng vào X Cơ chế chữ ký điện tử chứng số sử dụng thuật toán mã hóa đảm bảo giả mạo CA để cấp chứng không hợp pháp, chứng giả mạo dễ dàng bị phát Trở lại với việc ký văn bản, tài liệu, khóa bí mật dùng để ký văn bản, tài liệu chủ sở hữu Như đề cập ví dụ trên, giả sử A muốn gửi văn kèm với chữ ký văn đó, A dùng khóa bí mật để mã hóa thu mã văn bản, mã chữ ký điện tử A văn Khi A gửi văn chữ ký, để người khác xác nhận văn với thông tin đầy đủ chủ sở hữu, A gửi chứng kèm với văn Giả sử X nhận văn A gửi kèm với chứng chỉ, X dễ dàng xác nhận tính hợp pháp văn Hình 1: Tạo chữ ký kiểm tra chữ ký 10 Và Do p q hai số nguyên tố nhau, áp dụng định lý số dư Trung Quốc, ta có: hay: Tạo khóa RSA o Chọn số nguyên tố p=17 q=11 o Tính n=pq=17*11=187 o Tính =16*10=160 o Chọn e=gcd(e,160)=1 1[...]... nhưng ứng dụng xác thực khóa công khai ta có thể mở rộng ứng dụng sát với thực tế yêu cầu + Kết quả đạt được: - Hiểu được khái niệm về chữ ký số điện tử, mô hình cũng như vai trò của chữ ký điện tử - Hiểu được các thuật toán mã hóa trong đó có : hàm băm MD 5và thuật toán RSA - Phần mềm ứng dụng chữ ký điện tử + Hạn chế: - Phần mềm chưa được tối ưu về tốc độ mã hóa - Phân mềm còn hạn chế chỉ đọc được một... muốn xây dựng một hệ thống ký số điện tử đạt tiêu chuẩn quốc gia Hướng tiếp cận theo mật mã học khóa công khai là hướng tiếp cận dựa vào yêu cầu thực tế công nghệ là công khai và khóa mới là cái bí mật, độ an toàn của hệ thống không dựa vào độ an toàn của công nghệ mà chính là khóa Qua tìm hiểu và nghiên cứu viết ứng dụng minh họa Mặc dù chương trình mới ở mức đơn giản nhưng ứng dụng xác thực khóa công... khai và khóa bí mật Hình 3.5 Giao diện ký văn bản Bước 2 : Tại gia diện ký văn bản ta lần lượt thực hiện các bước sau - Tải văn bản cần ký - Ký vào văn bản đó - Sau khi đã ký xong thì lưu lại chữ ký Hình 3.6 Giao diện xác nhận văn bản 33 Bước 3 : Tại giao diện xác nhận văn bản ta thực hiện các bước - Tải văn bản đã ký và cần xác nhận lên - Tải chữ ký kèm theo đã được ký ở văn bản - Xác nhận chữ ký +...Chương 2: Tìm hiểu thuật toán Qua những phần tìm hiểu nhóm chúng em đã đi đến quyết định lựa chọn hàm băm MD5 và thuật toán RSA để áp dụng vào phần viết chương trình ứng dụng minh họa cho đề tài của nhóm 2.1 Hàm băm Hàm băm là các thuật toán không sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) thông điệp được đưa vào theo một thuật toán... bản đã được chỉnh sửa hoặc chữ ký kèm theo không chính xác sẽ xuất ra thông báo là văn bản đã được chỉnh sửa hoặc chữ ký không chính xác + Nếu văn bản và chữ ký đều chính xác thì chương trình sẽ thông báo chữ ký đã chính xác 34 Kết Luận Chữ ký điện tử là một trong những vấn đề khó trong lĩnh vực mật mã học Nó là một vấn đề không mới, đang được phát triển ở nước ta hiện nay và có nhiều công việc cần... là khác nhau Năm 1993, den Boer và Bosselaers đã tìm ra đụng độ trong việc sử dụng hàm nén (vòng 2 và 3) của MD5 Điều này phá vỡ quy luật thiết kế MD5 là chống lại sự đụng độ, nhưng MD5 vẫn là hàm Băm được sử dụng rộng rãi hiện nay Với những lý do trên vì vậy chúng em lựa chọn hàm băm MD5 để áp dụng vào viết ứng dụng minh họa 2.2 Thuật toán RSA Với đề tài xây dựng thư viện các hàm mã hoá dùng cho việc... mod(p-1) và d mod(q-1) o (1/q) mod p (thường gọi là iqmp) 21 Dạng này cho phép thực hiện giả mã và ký nhanh hơn với việc sử dụng Định lý số dư Trung Quốc.Ở dạng này tất cả các thành phần của khóa bí mật phải được giữ bí mật Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình Ở đây, p và q giữ vai trò rất quan trọng Chúng là các phân tố của n và cho phép tính d khi biết e Nếu không sử dụng. .. toán bình phương và nhân) Cuối cùng Bob gửi c cho Alice 2.2.2.2 Giải mã Alice nhận c từ Bob và biết khóa bí mật d Alice có thể tìm được m từ c theo công thức sau: Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước Quá trình giải mã hoạt động vì ta có : Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên: 22 Và Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số... một bản tóm lược thông báo z, không thể thực hiện về mặt tính toán để tìm bức điện x sao cho h(x) = z Việc giả mạo các chữ kí trên bản tóm lược thông báo z ngẫu nhiên thường xảy ra với sơ đồ chữ kí Giả sử tên giả mạo tính chữ kí trên bản tóm lược thông báo z ngẫu nhiên như vậy Sau đó anh ta tìm x sao cho z = h(x) Nếu làm được như vậy thì (x,y) là bức điện giả mạo hợp lệ Để tránh được tấn công này, h... chia bức điện thành các khối 512 bit, với khối cuối cùng (đặt là x và x < 512bit) của bức điện, chúng ta cộng thêm một bit 1 vào cuối của x, theo sau đó là các bit 0 để được độ dài cần thiết (512 bit) Kết quả là bức điện vào là một chuỗi M có độ dài chia hết cho 512, vì vậy ta có thể chia M ra thành các N khối con 32 bit (N khối này sẽ chia hết cho 16) Bây giờ, ta bắt đầu tìm cốt của bức điện với 4 ... Tìm hiểu chữ ký điện tử viết ứng dụng minh họa tìm hiểu vấn đề nêu cài đặt chương trình ký số minh họa Những vấn đề nhóm chúng em tìm hiểu viết ứng dụng minh họa bao gồm: Tìm hiểu chữ ký điện. .. 1: Chữ ký điện tử 1.1 Giới thiệu 1.2 Khái niệm chữ ký điện tử 1.3 So sánh chữ ký điện tử với chữ ký thông thường văn 1.4 Vị trí, vai trò chữ ký số điện tử. .. Tìm hiểu chữ ký điện tử Tìm hiểu phương pháp mã hóa bất đối xứng ứng dụng chữ ký điện tử Tìm hiểu hàm băm MD5 Tìm hiểu hệ mã hóa công khai RSA Chương 1: Chữ ký điện tử 1.1 Giới thiệu Trong