LUẬN VĂN:CHỮ KÝ SỐ VÀ ỨNG DỤNG pot

45 521 3
LUẬN VĂN:CHỮ KÝ SỐ VÀ ỨNG DỤNG pot

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Minh Hà CHỮ KÝ SỐ VÀ ỨNG DỤNG KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Minh Hà CHỮ KÝ SỐ VÀ ỨNG DỤNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thông tin Cán hướng dẫn: PGS – TS Hồ Sỹ Đàm Cán đồng hướng dẫn: TS Lê Đức Phong HÀ NỘI - 2010 Lời cảm ơn Em xin gửi lời cảm ơn sâu sắc đến PGS TS Hồ Sỹ Đàm TS Lê Đức Phong, người tận tình bảo, giúp đỡ em tận tình suốt thời gian làm luận văn đồng thời động viên lúc em gặp khó khăn nghiên cứu Em xin chân thành cảm ơn thầy cô mơn Mạng truyền thơng máy tính, trường Đại học Công nghệ - Đại học Quốc gia Hà Nội tạo điều kiện cho em thực đề tài Cuối cùng, em xin cảm ơn người thân gia đình bạn bè giúp đỡ, động viên em hồn thành khóa luận Sinh viên Nguyễn Minh Hà Mục lục Lời mở đầu Chương – TỔNG QUAN VỀ CHỮ KÝ SỐ 1.1 Giới thiệu chữ ký số công cụ liên quan 1.1.1 Giới thiệu chung 1.1.2 Khái niệm chữ ký số 1.1.3 So sánh chữ ký số với chữ ký thông thường(chữ ký viết tay) văn 1.1.4 Vị trí, vai trị chữ ký số điện tử 1.1.5 Phân loại chữ ký số 1.1.6 Sơ đồ tổng quan hệ thống chữ ký số điện tử 1.1.7 Sơ đồ chữ ký số RSA 1.1.8 Mơ hình chữ ký số thực tế 1.2 Cơ sở hình thành nên chữ ký số 1.2.1 Cơ sở toán học 1.2.1.1 Sinh số nguyên tố phân tích thừa số nguyên tố 1.2.1.2 Phép mũ hóa khai modul 1.2.2 Hàm băm mật mã 10 1.2.2.1 Giới thiệu 10 1.2.2.2 Các khái niệm định nghĩa : .11 1.2.2.3 Cấu trúc thuật toán băm 13 1.2.2.4 Giải thuật MD4 14 1.2.2.5 Giải thuật MD5 14 1.2.2.6 Giải thuật SHA – 1: 17 1.2.3 Mật mã học mật mã khóa cơng khai 18 1.2.3.1 Một số thuật ngữ khái niệm 18 1.2.3.2 Các hệ mã hóa 19 1.2.3.3 Ứng dụng mã hóa 19 1.2.3.4 Hệ mã hóa bí mật ( mã hóa khóa đối xứng) hạn chế : 19 1.2.3.5 Mật mã khóa cơng khai .20 1.2.3.6 Hệ mã hóa RSA 21 1.2.3.7 Hạn chế khóa cơng khai 24 Chương : CHỮ KÝ SỐ VÀ CHỮ KÝ SỐ RSA 25 2.1 Đặt vấn đề 25 2.1.1 Vấn đề xác thực : 25 2.1.2 Vấn đề chữ ký số 26 2.2 Một số khái niệm tính chất chữ ký số điện tử 26 2.2.1 Các bước tạo kiểm tra chữ ký điện tử 28 2.2.2 Lược đồ chữ ký số 28 2.3 Một số mơ hình chữ ký số thực tế 29 Chương : MÔ TẢ HỆ THỐNG CÀI ĐẶT 31 3.1 Các modul 31 3.1.1 Modul tạo khóa 31 3.1.2 Modul tạo chữ ký cho file tài liệu 31 3.1.3 Modul xác thực chữ ký số 31 3.2 Mơ hình : Tạo cặp khóa bí mật – cơng khai .32 3.3 Mơ hình : Tạo chữ ký số 33 3.4 Mơ hình : Xác thực chữ ký số 34 3.5 Chương trình thử nghiệm : 35 3.5.1 Giao diện chương trình 35 3.5.2 Thử nghiệm 36 3.5.3 Nhận xét 36 Kết luận 38 Tài liệu tham khảo 39 Danh mục hình Hình 1.1 : Phân loại chữ ký số Hình 1.2 : Sơ đồ tổng quan chữ ký số thực tế Hinh 1.3 : Ảnh minh họa làm việc hàm băm .15 Hình 1.4 : Giải thuật MD5 20 Hình 1.5 : SHA-1 22 Hình 1.6 : Mơ hình mật mã khóa cơng khai 25 Hình 1.7 : Mã hóa RSA 26 Hình 1.8 : Ví dụ RSA .27 Hình 2.1 : Hàm MAC .31 Hình 2.2 : Minh họa chữ ký số bên gửi cho thông báo M 32 Hình 2.3 : Ký văn 34 Hình 2.4 : Xác thực chữ ký 35 Hình 3.1 : Sơ đồ chương trình chữ ký số 36 Hình 3.2: Giao diện chương trình 41 Hình 3.3 : Xác thực 41 Lời mở đầu Mật mã học vấn đề quan trọng lĩnh vực bảo mật an tồn thơng tin Trên giới, mật mã học đời từ thời La Mã cổ đại ngày nghiên cứu , phát triển đạt thành tựu to lớn Trong mật mã học, vấn đề bảo mật đôi với vấn đề xác thực thông tin, đặc biệt hệ thống mã hóa khóa cơng khai vấn đề xác thực vô quan trọng Để giải vấn đề người ta đưa cách giải hiệu quả, chữ ký số 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 Việc sử dụng chữ ký số giải pháp hữu hiệu, ngày ứng dụng nhiều thực tế, không giới hạn ngành cơng nghệ thơng tin, mật mã học mà cịn áp dụng nhiều lĩnh vực khác ngân hang, viễn thơng… Mật mã học khóa cơng khai tạo chữ ký số ứng dụng vào tài liệu Hệ mã hóa RSA – hệ mã hóa điển hình mật mã cơng khai với hàm băm mật mã học chiều cơng cụ việc tạo chữ ký số điện tử Trong khố luận này, tơi chủ yếu tập trung vào sơ đồ chữ ký số RSA ứng dụng Luận văn trình bày theo phần : Phần gồm chương giới thiệu chung công cụ tạo nên chữ ký số; Phần chương nói mơ hình chữ ký số phần chương - mô tả hệ thống cài đặt thử nghiệm Cuối phần kết luận tài liệu tham khảo Mặc dù cố gắng hết sức, không tránh khỏi sai sót, vây mong góp ý phê bình Chương – TỔNG QUAN VỀ CHỮ KÝ SỐ 1.1 Giới thiệu chữ ký số công cụ liên quan 1.1.1 Giới thiệu chung Trong đời sống hàng ngày, chữ ký (viết tay) văn minh chứng “bản quyền” “tán đồng, thừa nhận” nội dung văn Chẳng hạn việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng… Chữ ký viết tay tay người ký nên chụp Thông thường 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 nó” ? Về mặt lý tưởng [1] : - 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 khơng thể phủ định việc ký văn người khác tạo chữ ký ) Trong sống đời thường, việc tạo mơ hình “lý tưởng”như khơng dễ việc ký văn giấy giả mạo chữ ký, với khả kiểm định sát việc làm thay đổi dễ Tuy nhiên giới máy tính vấn đề ký thực tế gặp phải nhiều khó khăn : dịng thơng tin máy tính thay đổi dễ dàng, hình ảnh chữ ký tay người dễ dàng cho “sang – truyền” từ văn sang văn khác, việc thay đổi nội dung văn điện tử (sau ký) chẳng để lại dấu vết phương diện “tẩy, xóa”… Để 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ử Giao thức chữ ký số dựa ý tưởng Diffie Hellman [7] : - 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.1.2 Khái niệm chữ ký số Chữ ký số (khóa cơng khai) mơ hình sử dụng kỹ thuật mật mã để gắn với người sử dụng cặp khóa cơng khai - bí mật qua ký văn điện tử trao đổi thơng tin mật Khóa cơng khai thường phân phối thơng qua chứng thực khóa cơng khai Q trình sử dụng chữ ký số bao gồm trình: tạo chữ ký kiểm tra chữ ký [10] Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính tồn vẹn liệu truyền đi, đồng thời bảo đảm tính khơng thể phủ nhận thực ký thông tin 1.1.3 So sánh chữ ký số với chữ ký thông thường(chữ ký viết tay) văn Chữ ký số chữ ký thường có nhiều điểm khác : - 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ý số 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 tồn, dễ giả mạo Ngược lại, chữ ký số lại kiểm tra nhờ dùng thuật tốn kiểm tra cơng khai, kiểm tra Việc dùng sơ đồ chữ ký an tồn ngăn chặn giả mạo 1.1.4 Vị trí, vai trị chữ ký số điện tử - Xu hướng quốc tế hóa tồn cầu hóa ảnh hưởng đến phát triển giới Việc trao đổi thơng tin từ 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 chễ 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 tồ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ố 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 số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ý số không thực cho giao dịch điện tử mạng internet mà cịn 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ý số 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 hoá mua sắm trực tuyến giúp người dùng truy cập lúc, nơi - Sự đời chữ ký số khẳng đinh lợi ích to lớn chiến lược kinh tế, đồng thời vấn đề liên quan đến chữ ký số chủ đề quan trọng mật mã học 1.1.5 Phân loại chữ ký số Chúng ta chia chữ ký số loại [2]: Kỹ thuật ký mà chữ ký số phần đính vào thơng điệp gửi đi, đầu vào cho q trình xác minh tính đắn chữ ký loại chữ ký mà từ phục hồi lại thông điệp ban đầu trước ký, thông điệp ban đầu đầu vào cho trình xác minh chữ ký Chương : CHỮ KÝ SỐ VÀ CHỮ KÝ SỐ RSA Chương tập trung vào mơ hình chữ ký số, trọng tâm chữ ký số RSA ứng dụng Chữ ký số đời nhằm giải vấn đề chưa giải xác thực toàn vẹn liệu 2.1 Đặt vấn đề 2.1.1 Vấn đề xác thực : Trong trao đổi thông tin, thông điệp truyền bên gửi bên nhận cấn có tiêu chuẩn cần xác minh, xác thực Xác thực thơng báo kỹ thuật mật mã học để xác minh tính đắn thơng báo đuợc gửi Một thông báo đuợc xác thực thỏa mãn yêu cầu [6] : - Thơng báo có nguồn gốc rõ ràng, xác - Nội dung thơng báo tồn vẹn không bị thay đổi - Thông báo gửi trình tự thời điểm o Các phương pháp xác thực : Xác thực thơng báo đuợc sử dụng hệ mã khóa bí mật người dùng chung khóa dùng mã hóa khóa cơng khai cách người gửi dùng khóa bí mật để mã hóa thơng báo gửi Một số phuơng pháp xác thực thơng dụng : Mã hóa thơng báo sử dụng hai cách mã hóa đối xứng công khai Sử dụng mã xác thực thông báo (MAC) : MAC kỹ thuật xác thực thông báo cách sử dụng khóa bí mật MAC sử dụng thơng báo khóa bí mật đầu vào tạo chuỗi thơng tin có kích thước cố định Bên tham gia trình trao đổi thơng báo kiểm tra tính đắn thông báo cách tạo đoạn mã MAC kiểm tra đoạn mã vừa nhận đoạn mã tạo để so sánh Giải thuật MAC giống giải thuật mã hóa khơng có q trình nguợc lại (giải mã) Cũng gần giống kỹ thuật băm mật mã học giới thiệu truớc, có nhiều thơng báo có mã MAC, biết thơng báo mã MAC khó tìm thơng báo khác có mã MAC thơng báo có mã MAC khơng thể 25 Hình 2.1 : Hàm MAC Sử dụng hàm băm : Như giới thiệu chuơng 2, Hàm băm tạo giá trị cố định từ thông báo đầu vào Người tham gia trao đổi tạo giá trị băm từ thơng báo nhận được, so sánh với giá trị băm nhận đuợc thông báo để kiểm tra tính đắn 2.1.2 Vấn đề chữ ký số Xác thực thông báo bảo vệ hai bên tham gia q trình trao đổi thơng tin từ kẻ thứ ba Tuy nhiên, xác thực thơng báo khơng có tác dụng bên gửi bên nhận muốn gây hại cho [3]: - Bên nhận giả mạo thông báo bên gửi - Bên gửi chối gửi thông báo đến bên nhận - Chữ ký số giúp xác thực thơng báo mà cịn bảo vệ bên khỏi bên 2.2 Một số khái niệm tính chất chữ ký số điện tử Khái niệm : Chữ ký số khóa cơng khai (hay hạ tầng khóa cơng khai) mơ hình sử dụng kỹ thuật mật mã để gắn với người sử dụng cặp khóa cơng khai - bí mật qua 26 ký văn điện tử trao đổi thơng tin mật Khóa cơng khai thường phân phối thơng qua chứng thực khóa cơng khai Q trình sử dụng chữ ký số bao gồm trình: tạo chữ ký kiểm tra chữ ký.[10] Chức chữ ký số - Xác minh tác giả thời điểm ký thông tin đuợc gửi - Xác thực nội dung thông tin gửi - Là để giải tranh chấp – từ chối trách nhiệm Giao thức chữ ký số bao gồm thuật toán tạo chữ ký số thuật tốn để kiểm tra chữ ký số Hình 2.2 : Minh họa chữ ký số bên gửi cho thông báo M KRa, KUa : khóa bí mật cơng khai bên A K : khóa phiên đối xứng dùng chung A B M : thông báo gửi H : hàm băm E : Mã hóa D : Giải mã 27 2.2.1 Các bước tạo kiểm tra chữ ký điện tử [6]Bên gửi A thực băm thông điệp cần gửi hàm băm H, mã giá trị vừa băm mật mã khóa cơng khai với khóa bí mật bên A KRa, phần thơng tin chữ ký xác thực người dùng A thông điệp M gửi A gửi cho B văn chữ ký (Thơng điệp mã hóa khơng mã hóa tùy theo u cầu Như hình vẽ chữ ký gắn liền với thông điệp mã hóa mật mã đối xứng với khóa dùng chung K A B) B nhận thông điệp (hoặc mã giải mã với khóa chung K để lấy thơng điệp) tiến hành việc : băm giá trị thông điệp hàm băm H, giải mã chữ ký khóa cơng khai KUa bên gửi so sánh giá trị vừa tính tốn Nếu giá trị trùng khớp chúng tỏ thơng điệp nhận có nội dung không thay đổi so với ký 2.2.2 Lược đồ chữ ký số Khi đề cập đến lược đồ chữ ký số, người ta phải đề cập đến thuật toán sau: o Thuật toán khởi tạo tham số hệ thống: Là thuật toán /xác suất/ nhận đầu vào tham số bảo mật k (k gọi độ dài bảo mật) đưa tham số chung cho hệ thống Thuật toán thường tiến hành server hệ thống Với RSA việc chọn ngẫu nhiên số ngun tố lớn p & q, tính tốn n, o Thuật tốn sinh khóa: Đây thuật tốn /xác suất/, tiến hành người dùng hệ thống Thuật toán nhận đầu vào gồm tham số hệ thống sinh cặp khóa bí mật/cơng khai Với RSA : d, e o Thuật toán sinh chữ ký số: Thuật toán nhận đầu vào tin nhắn/tài liệu, sinh chữ ký số nhờ vào khóa bí mật Thuật tốn đơn định xác suất 28 Trong RSA: s = H(m)^d, thuật tốn đơn định khơng có sử dụng thêm yếu tố ngẫu nhiên o Thuật toán xác thực chữ ký số: Thuật toán tiến hành người thứ ba muốn kiểm tra tính đắn chữ ký số Thuật tốn nhận đầu vào tin nhắn, chữ ký số tin nhắn khóa cơng khai người sở hữu tin nhắn & chữ ký số, đầu thuật toán câu trả lời "đúng" "sai" Thuật toán thuật toán đơn định 2.3 Một số mơ hình chữ ký số thực tế Mơ hình chữ ký số RSA hệ thống quản lý : Quá trình gửi nhận tệp văn phục vụ quản lý dựa vào thuật toán băm SHA-1 thuật tốn RSA Mơ hình trình bày [4] o Quá trình ký gửi tệp văn Từ file cần gửi ban đầu, chương trình sử dụng hàm băm SHA-1 để mã hóa chuỗi ký tự dài 128 bit Chương trình sử dụng thuật tốn RSA để mã hóa giá trị băm thu với khóa riêng người gửi giá trị gọi chữ ký điện tử Kết hợp file ban đầu với chữ ký điện tử thành thông điệp ký gửi cho người nhận Hình 2.3 : Ký văn 29 o Quá trình nhận tệp văn : Sau người nhận nhận văn Hệ thống tách thông điệp ký thành file chữ ký điện tử Đến giai đoạn có q trình kiểm tra : - Kiểm tra file có người gửi hay khơng : Sử dụng thuật toán RSA để giải mã chữ ký điện tử khóa cơng khai người gửi Nếu giải mã khơng file nhận file nhận không người Nếu giải mã thành công file nhận đuợc người gửi có giá trị băm (bản tóm lược 1) - Kiểm tra file có bị thay đổi hay khơng :Từ file đuợc tách ta sử dụng hàm băm SHA-1 mã hóa thành giá trị băm 2(bản tóm lược 2) Kiểm tra giá trị băm giá trị băm có giống hay khơng? Nếu giống file nhận tồn vẹn, khơng bị thay đổi, ngược lại file bị thay đổi Hình 2.4 : Xác thực chữ ký 30 Chương : MÔ TẢ HỆ THỐNG CÀI ĐẶT Chương tập trung mô tả hệ thống cài đặt chưong trình tạo xác thực chữ ký số Chương trình phát triển ngơn ngữ Java Chương trình thể việc cấp phát khóa, tạo chữ ký số cho file văn xác thực chữ ký cho file văn Sau modul chương trình : 3.1 Các modul 3.1.1 Modul tạo khóa Nhiệm vụ modul tạo cặp khóa bí mật - cơng khai cho người dùng Mặc định chương trình tạo cặp khóa có độ dài 1024 bit 3.1.2 Modul tạo chữ ký cho file tài liệu Nhiệm vụ modul tạo file chữ ký (*.sig) có tên trùng với tên file chọn để ký Người dùng muốn sử dụng chức phải thơng qua việc tạo khóa 3.1.3 Modul xác thực chữ ký số Đầu vào modul file cần xác thực + với chữ ký số Nhiệm vụ modul kiểm tra tính đắn chữ ký số Tạo khóa Tạo chữ ký số Xác thực chữ ký số Hình 3.1 : Sơ đồ chương trình chữ ký số 31 3.2 Mơ hình : Tạo cặp khóa bí mật – cơng khai Input : Độ dài khóa 1024 bit Ouput : Cặp khóa bí mật – cơng khai RSA thỏa mãn u cầu Do khóa RSA cấu trúc gồm số nguyên lớn nên ta mô tả cấu trúc khóa RSA sau : public class Key { // Two elements in a key private BigInteger exp,modul; /* * Methods */ public Key(BigInteger exp,BigInteger modul){ this.exp = exp; this.modul = modul; } public BigInteger getExp() { return exp; } public BigInteger getModul() { return modul; } } Khi có yêu cầu tạo cặp khóa, ta việc gọi hàm RSAKeyPair getInstance(int bits) cho ta cặp khóa cơng khai – bí mật có độ dài bits (bit) 32 public static RSAKeyPair getInstance(int bits){ Random ran = new Random(); BigInteger p = new BigInteger(bits/2,8,ran); BigInteger q = new BigInteger(bits/2,8,ran); if(p.compareTo(q) == 0){ while(p.compareTo(q) == 0){ q = new BigInteger(bits/2,8,ran); } } //Calculate n and fiN BigInteger n = p.multiply(q); BigInteger p1 = p.subtract(BigInteger.ONE); BigInteger q1 = q.subtract(BigInteger.ONE); BigInteger phiN = p1.multiply(q1); //Calculate e BigInteger e = new BigInteger("65537"); //Calculate d BigInteger d = e.modInverse(phiN); Key pub = new Key(e,n); Key pri = new Key(d,n); return new RSAKeyPair(pub,pri); } Trong đoạn mã ta sử dụng hàm sinh số nguyên tố lớn ngẫu nhiên có độ dài bits/2  khóa sinh bits(bit) Đồng thời ta cố định giá trị e = 65537 3.3 Mơ hình : Tạo chữ ký số Input : Khóa bí mật file tài liệu cần ký Output : File chữ ký số (*.sig) Mã chương trình : 33 public BigInteger generateSignature(String fileName,BigInteger D_,BigInteger N_) throws IOException{ BigInteger big = null; BigInteger result = null; try{ //Get hash value of file FileInputStream fis = new FileInputStream(fileName); MessageDigest sha = MessageDigest.getInstance("SHA-1"); BufferedInputStream bufin = new BufferedInputStream(fis); byte[] buffer = new byte[1024]; int len; while ((len = bufin.read(buffer)) >= 0) { sha.update(buffer, 0, len); } bufin.close(); big = new BigInteger(1,sha.digest()); //Signature result = generateRSA(big,D_,N_); //Write signature to filename.sig String sigFile = fileName + ".sig"; File file = new File(sigFile); FileWriter writer = new FileWriter(file); PrintWriter out = new PrintWriter(writer); out.println(result.toString()); out.close(); System.out.println(big.toString()); }catch(Exception ex){ ex.printStackTrace(); } return result; } Trong đoạn mã ta sử dụng thư viện hàm băm SHA-1 để lấy giá trị băm file đầu vào  chữ ký tạo khóa bí mật + giá trị băm ghi file sig 3.4 Mơ hình : Xác thực chữ ký số Input : File ban đầu, file chữ ký số + khóa cơng khai Output : Tính đắn chữ ký số Mã chương trình 34 public boolean verifySignature(String fileName,String sigFile,BigInteger E_,BigInteger N_) throws IOException{ //Get signature from file File file = new File(sigFile); FileReader reader = new FileReader(file); BufferedReader in = new BufferedReader(reader); String s; s = in.readLine(); BigInteger sig = new BigInteger(s); BigInteger rsa = verifyRSA(sig,E_,N_); System.out.println("rsa :" + rsa.toString()); BigInteger big = null; try { //Hash value of origin file FileInputStream fis = new FileInputStream(fileName); MessageDigest sha = MessageDigest.getInstance("SHA-1"); BufferedInputStream bufin = new BufferedInputStream(fis); byte[] buffer = new byte[1024]; int len; while ((len = bufin.read(buffer)) >= 0) { sha.update(buffer, 0, len); } bufin.close(); big = new BigInteger(1,sha.digest()); System.out.println(big.bitLength()); } catch (NoSuchAlgorithmException ex) { Logger.getLogger(RSADigitalSignature.class.getName()).log(Level SEVERE, null, ex); } if(rsa.compareTo(big) == 0) return true; return false; Từ file ban đầu ta dùng hàm băm SHA-1 để lấy giá trị băm, sau dùng khóa cơng khai để giải mã chữ ký số thu giá trị (rsa) Lấy giá trị (rsa) so sánh với giá trị băm thu để khẳng định tính đắn chữ ký số 3.5 Chương trình thử nghiệm : 3.5.1 Giao diện chương trình 35 Hình 3.5: Giao diện chương trình Chương trình gồm tab tương ứng với chức chương trình : tạo khóa, tạo chữ ký, xác thực chữ ký 3.5.2 Thử nghiệm Hình 3.6: Xác thực 3.5.3 Nhận xét 36 Chương trình chạy tốt cho việc tạo kiểm tra chữ ký xác Giao diện chưong trình tương đối dễ dùng Chương trình sử dụng hàm băm SHA-1 với độ dài giá trị băm 160 bit – an tồn gần tuyệt độ tính tốn nay, giá trị khóa 1024 bit, đầu vào chương trình tạo chữ ký số file có độ lớn - tốc độ băm file tỉ lệ với độ lớn file 37 Kết luận Vấn đề chữ ký số điện tử vấn đề khó lĩnh vực mật mã học Nó vấn đề khơng mới, phát triển nước ta có nhiều công việc cần giải muốn xây dựng 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 hướng tiếp cận dựa vào yêu cầu thực tế cơng nghệ cơng khai khóa bí mật, độ an tồn hệ thống khơng dựa vào độ an tồn cơng nghệ mà khóa Qua sáu chương luận văn trình bày công cụ để xây dựng chữ ký số, lược đồ chữ ký số RSA xây dựng chương trình mơ tả việc thực ký xác thực file tài liệu với ngôn ngữ Java Mặc dù chất chương trình mức độ đơn giản cải tiến kết hợp với việc tạo thêm hệ tầng PKI để cung cấp ứng dụng xác thực khóa cơng khai ta mở rộng ứng dụng sát với thực tế yêu cầu 1) Kết đạt - Trình bày tổng quan chữ ký số điện tử, phân loại, mơ vai trị chữ ký số - Trình bày mật mã học, hàm băm mật mã học – cơng cụ để tạo chữ ký số RSA - Xây dựng chương trình demo chữ ký số RSA 2) Hướng phát triển - Tiếp tục cải tiến chương trình cách xây dựng mơ hình client – server server cung cấp việc xác thực khóa cơng khai - Thử việc gán nhãn thời gian cho liệu để đảm bảo độ an toàn dễ dàng giải trường hợp ví dụ người dùng bị khóa bí mật… - Xây dựng việc cung cấp xác thực khóa cơng khai cho tổ chức, cá nhân, mở rộng mơ hình tùy vào yêu cầu sử dụng… 38 Tài liệu tham khảo [1] Phạm Huy Điển , Mã hóa thơng tin 2003, tr 14-20 [2] Ths.Trần Minh Triết.ChuKyDienTu-Revised-2008-Apr.ppt, tr11 [3] Lê Đại Thọ, Slide giảng An Toàn Mạng 2009, tr.30-35 [4] Phan Huy Khánh, Hồ Phan Hiếu ,Trường Đại học Bách khoa, Đại học Đà Nẵng Giải pháp ứng dụng chữ ký điện tử trình gửi nhận văn bản, Tạp chí khoa học cơng nghệ, Đại học Đà Nẵng – số 5(34).2009 [5] TS Lê Đức Phong, Cryptographic protocols, tr.13 [6] William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, November 16, 2005, tr.30-35 [7] Whitfield Diffie and Martin E Hellman, New Directions in Cryptography, 1976 [8] Bart Van Rompay Analysis and Desigbn of Cryptographic Hash Functions, MAC Algorithms and Block Ciphers, Juni 2004, tr 27-28 [9] Burt Kaliski,RSA Laboratories, The Mathematics of the RSA Public-Key Cryptosystem [10] Trang Web : http://vi.wikipedia.org/wiki/Chữ_ký_số, tr [11] Trang Web : http://vi.wikipedia.org/wiki/Hàm_băm_mật_mã_học, tr.21 [12] Trang Web : http://vi.wikipedia.org/wiki/Mật_mã_học, tr.29 [13] Trang Web : http://www.phpvn.org/index.php?topic=143.0, tr 11-12 [14] Trang Web : www.tchq.edu.vn/Thuvien/FileUpload/Phanmem/MD5.pdf,tr.24-26 39 ... xác thực chữ ký V :Cung cấp dịch vụ cho client kiểm tra tính đắn chữ ký o Chữ ký số RSA sử dụng công cụ : Chữ ký số RSA loại chữ ký số sử dụng phổ biến nay, sử dụng cơng cụ : - Số học - Hàm băm... liên quan đến chữ ký số chủ đề quan trọng mật mã học 1.1.5 Phân loại chữ ký số Chúng ta chia chữ ký số loại [2]: Kỹ thuật ký mà chữ ký số phần đính vào thông điệp gửi đi, đầu vào cho q trình xác... 1.1.2 Khái niệm chữ ký số 1.1.3 So sánh chữ ký số với chữ ký thông thường(chữ ký viết tay) văn 1.1.4 Vị trí, vai trị chữ ký số điện tử 1.1.5 Phân loại chữ ký số 1.1.6

Ngày đăng: 27/06/2014, 23:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan