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

Tìm hiểu sơ đồ chữ ký số RSA và Ứng dụng vào kiểm tra tính ATBM của thông điệp

85 1,3K 6

Đ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 85
Dung lượng 1,37 MB

Nội dung

MỤC LỤCTRANG PHỤ BÌALỜI CẢM ƠNMỤC LỤCDANH MỤC HÌNHLỜI MỞ ĐẦU11 Lý do chọn đề tài12 Mục đích nghiên cứu13 Cơ sở lý thuyết24 Phạm vi nghiên cứu25 Phương pháp nghiên cứu2CHƯƠNG I:TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HỆ MÃ HÓA RSA31.1Giới thiệu về chữ ký số và các công cụ liên quan.31.1.1 Giới thiệu chung31.1.2 Khái niệm chữ ký số:41.1.3 So sánh chữ ký số với chữ ký thường41.1.4 Vai trò của chữ ký số51.1.5 Phân loại chữ ký số:51.1.6 Sơ đồ tổng quan của một hệ thống chữ ký số điện tử.61.1.7 Các ưu điểm của chữ ký số71.1.8 An ninh8CHƯƠNG II: CHỮ KÝ SỐ RSA102.1 Lịch sử102.1.1 Chữ ký số RSA102.1.2 Hoạt động102.1.3 Chuyển đổi văn bản152.1.4 Các vấn đề trong thực tế172.1.5 Mô hình chữ ký số trong thực tế202.1.6 Một số mô hình chữ ký số trong thực tế :202.1.7 Lược đồ chữ ký số222.1.8 Tạo chữ ký số RSA:23CHƯƠNG III: MÔ TẢ HỆ THỐNG283.1 Đặc tả yêu cầu283.1.1 Mục đích283.1.2 Mô tả tổng quan283.1.3 Yêu cầu chức năng283.1.4 Yêu cầu phi chức năng293.1.5 Thiết kế giao diện và tương tác với người dùng.29CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH324.1 Thông tin ứng dụng324.1.1 Môi trường cài đặt324.1.2 Hướng dẫn cài đặt324.1.3 Hướng dẫn xây dựng chươngtrình324.1.4 Hướng dẫn chạy chương trình32KẾT LUẬN TÀI LIỆU THAM KHẢOPHỤ LỤC

MỤC LỤC TRANG PHỤ BÌA DANH MỤC HÌNH LỜI CẢM ƠN Em xin gửi lời cảm ơn sâu sắc đến ThS.Bùi Thị Thùy người giúp đỡ em tận tình suốt thời gian làm báo cáo động thời người động viên em lúc em gặp khó khăn nghiên cứu Em xin chân thành cảm ơn thầy cô khoa Công nghệ Thông tin tạo điều kiện cho em hoàn thành đồ án tốt nghiệp Cuối em xin cảm ơn người thân gia đình bạn bè giúp đỡ em hoàn thành đồ án tốt nghiệp đạt kết tốt Hà Nội, ngày 30 tháng 05 năm 2015 Sinh Viên Hoàng Bích Phượng LỜI MỞ ĐẦU Lý chọn đề tài Mật mã học vấn đề quan trọng lĩnh vực bảo mật an toà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à áp dụng nhiều lĩnh vực khác ngân hàng, 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ử Được đồng ý ThS.Bùi Thị Thùy, em chọn đề tài “Tìm hiểu sơ đồ chữ ký số RSA Ứng dụng vào kiểm tra tính ATBM thông điệp” để làm đề tài đồ án tốt nghiệp Mục đích nghiên cứu Nghiên cứu lý thuyết mật mã, mật mã khóa công khai RSA, chữ ký số ứng dụng thuật toán RSA mã hóa liệu Từ xây dựng hệ thống cho phép tạo kiểm tra chữ ký tài liệu, công văn, giấy tờ hành điện tử để bảo vệ nội dung thông tin nhu cầu xác thực nguồn gốc thông tin Cơ sở lý thuyết Nghiên cứu, thu thập tài liệu xuất bản, báo tạp chí khoa học tài liệu mạng Internet vấn đề nghiên cứu tác giả nước Từ em chọn lọc xếp theo ý tưởng : • Tìm hiểu, vận dụng kế thừa số hàm mật mã có • Internet Nghiên cứu ngôn ngữ lập trình C#, C++, Java… để xây dựng ứng dụng mã hóa liệu chữ ký số Phạm vi nghiên cứu Nghiên cứu hệ mã khóa công khai, sơ đồ chữ ký số RSA cài đặt chương trình minh họa Phương pháp nghiên cứu Hoạt động nghiên cứu, tổng hợp, phân tích, lập trình Hoạt động nghiên cứu tài liệu Trao đổi với giảng viên hướng dẫn Bố cục báo cáo Ngoài phần lời cảm ơn, mở đầu kết luận báo cáo có chương: Chương I: Tổng Quan chữ ký số Chương II: Hệ mã hóa RSA Chữ ký số RSA Chương III: Phân tích thiết kế giao diện Chương IV: Cài đặt chương trình CHƯƠNG I: TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HỆ MÃ HÓA RSA 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ó”, mặt lý thuyểt : - 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ý ) 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”… Vậy để có đặc tính “ký giới điện tử ”cần có 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 : - 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 Quá trình sử dụng chữ ký số bao gồm trình: tạo chữ ký kiểm tra chữ ký 1.1.3 So sánh chữ ký số với chữ ký thường 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 toàn, dễ giả mạo Ngược lại, chữ ký số 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.1.4 Vai trò chữ ký số 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 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 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ã hoá 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ý số 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ý 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ố: Kỹ thuật ký mà chữ ký số phần đính vào thông điệp gửi đi, đầu vào cho 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ý Hình 1.1 Phân loại chữ ký số Do tính thực tế chữ ký số mà luận văn chủ yếu tập trung vào kỹ thuật ký thứ 2, chữ ký số phần đính thêm cho trình xác minh thông điệp Những đặc điểm chữ ký : - Chữ ký điện tử kèm với thông điệp gốc - Cần có thông điệp (gốc) cho trình kiểm tra chữ ký điện tử - Sử dụng hàm băm mật mã Ví dụ: RSA, DSA, ElGamal, Schnorr… - Dựa thuật toán mã hóa Ví dụ :chữ ký số Full Domain Hash, RSA - PSS dựa theo thuật toán mã hóa RSA, chữ ký số DSA dựa vào thuật toán DSA… 1.1.6 Sơ đồ tổng quan hệ thống chữ ký số điện tử Một sơ đồ chữ ký số thường bao gồm hai thành phần chủ chốt thuật toán ký thuật toán xác minh Một sơ đồ chữ ký số (P, A, K, S, V) thỏa mãn điều kiện sau : - P tập hợ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 k thuộc K, tồn thuật toán ký sigk thuộc S thuật toán xác minh verk thuộc V, sigk verk ánh xạ : sigk ánh xạ từ P sang A vàVerk ánh xạ từ A sang tập biểu diễn {True, False} thỏa mãn với x thuộc P, y thuộc A,ver (x,y)= true y=sig(x) ver(x,y) = false y khác 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 1.1.7 Các ưu điểm chữ ký số Khả xác định nguồn gốc Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn với khóa bí mật mà có người chủ khóa biết Để sử dụng Chữ ký số văn cần phải mã hóa hàm băm (là giải thuật nhằm sinh giá trị băm tương ứng với khối liệu: chuỗi kí tự, đối tượng lập trình hướng đối tượng, v.v… Giá trị băm đóng vai gần khóa để phân biệt khối liệu) Sau dùng khoá bí mật người chủ khóa để mã hóa, ta Chữ ký số Khi cần kiểm tra, bên nhận giải mã với khóa công khai để lấy lại hàm băm kiểm tra với hàm băm văn nhận Nếu hai giá trị khớp bên nhận tin tưởng văn xuất phát từ người sở hữu khóa bí mật Tính toàn vẹn Cả hai bên tham gia vào trình thông tin tin tưởng văn không bị sửa đổi truyền văn bị thay đổi hàm băm thay đổi lập thức bị phát Quy trình mã hóa ẩn nội dung dối với bên thứ ba Tính phủ nhận Trong giao dịch, bên từ chối nhận văn gửi Để ngăn ngừa khả này, bên nhận yêu cầu bên gửi phải gửi kèm chữ ký số với văn Khi có tranh chấp, bên nhận dùng chữ ký chúng để bên thứ ba giải 1.1.8 An ninh Độ an toàn hệ thống RSA dựa vấn đề toán học: 10 } public string GiaiMaBase64ChuKy(string bangma) { try { //Lấy mã Unicode kí tự mã hóa string giaima = Encoding.Unicode.GetString(Convert.FromBase64String(bangma)); return giaima; } catch (Exception) { } return ""; } public bool Kiemtra(string noidung,string chuky, int n, int d) { //xu ly x // Chuyen xau ma Unicode x int[] nguyen = new int[noidung.Length]; for (int i = 0; i < noidung.Length; i++) { nguyen[i] = (int)noidung[i]; } //xu ly y //Lấy mã Unicode kí tự mã hóa string giaima = Encoding.Unicode.GetString(Convert.FromBase64String(chuky)); var lista = Revertchuoi(giaima); int[] b = new int[lista.Length]; for (int i = 0; i < lista.Length; i++) { b[i] = (int)lista[i]; } //Giải mã int[] c = new int[b.Length]; 71 for (int i = 0; i < c.Length; i++) { c[i] = mod(b[i], AppGlobal.D, n); } //kiem tra c va nguyn for (int i = 0; i < c.Length; i++) { if (c[i] != nguyen[i]) return false; } return true; //if (AppGlobal.NoiDungnguyon != noidung) // return false; //if (AppGlobal.ChuKy != chuky) // return false; return true; } } } 3.Code form tạo chữ ký namespace SignRSA { public partial class TaoChuKy : Form { private RSAAlgorithm _rsaAlgorithm = new RSAAlgorithm(); private string data = ""; public TaoChuKy() { InitializeComponent(); txtnoidung.Multiline = true; txtnoidung.ScrollBars = ScrollBars.Both; txtRoSo.Multiline = true; 72 txtRoSo.ScrollBars = ScrollBars.Both; txtMaHoa.Multiline = true; txtMaHoa.ScrollBars = ScrollBars.Both; txtchuky.Multiline = true; txtchuky.ScrollBars = ScrollBars.Both; } private void readFile(string fileName) { //C:\\Users\\jacky\\Desktop\\sql.txt int counter = 0; string line1; // Read the file and display it line by line if (string.IsNullOrEmpty(fileName)) { return ; } System.IO.StreamReader file = new System.IO.StreamReader(@""+fileName); while ((line1 = file.ReadLine()) != null) { Console.WriteLine(line1); data += line1 +"\r\n"; counter++; } txtnoidung.Text = data; file.Close(); // Suspend the screen Console.ReadLine(); } private void btnmahoa_Click(object sender, EventArgs e) { if (!IsHaKey()) MessageBox.Show("Bạn phải tạo khóa trước ", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information); 73 else try { string mahoanoidung; string txtMaBanMa; string txtBanma; _rsaAlgorithm.MaHoa(txtnoidung.Text, AppGlobal.E, AppGlobal.N, out mahoanoidung, out txtMaBanMa, out txtBanma); txtRoSo.Text = mahoanoidung; txtMaHoa.Text = txtMaBanMa; txtchuky.Text = txtBanma; AppGlobal.NoiDung = mahoanoidung; AppGlobal.ChuKy = txtBanma; } catch (Exception ex) { MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } AppGlobal.NoiDungnguyon = txtnoidung.Text; } private bool IsHaKey() { if (AppGlobal.D [...]... (R1) 28 • Kiểm tra chữ ký: Verk (x, y) = đúng ⇔ x ≡ y b (mod n) (R2) Chú ý - So sánh giữa sơ đồ chữ ký RSA và sơ đồ mã hóa RSA ta thấy có sự tương ứng - Việc ký chẳng qua là mã hoá, việc kiểm thử lại chính là việc giải mã: Việc ký số vào x tương ứng với việc “mã hoá” tài liệu x - Kiểm thử chữ ký chính là việc giải mã chữ ký , để kiểm tra xem tài liệu đã giải mã có đúng là tài liệu trước khi ký không... mền về chữ ký số RSA ứng dụng vào kiểm tra tính an toàn bảo mật của thông điệp 3.1.2 Mô tả tổng quan • Chương trình dùng để mô phỏng hệ chữ ký RSA • Có giao diện người dùng trực quan, dễ sử dụng • Hộ trợ tự động cho phép người dùng tự nhập và kiểm tra tính hợp lệ của các yếu tố đầu vào • Cho phép mở và lưu các yếu tố đầu vào, ra 3.1.3 Yêu cầu chức năng • Cho phép tự nhập hoặc sinh ngẫu nhiên các số nguyên... sử dụng thêm yếu tố ngẫu nhiên nào • Thuật toán xác thực chữ ký số: Thuật toán này được tiến hành bởi một người thứ ba khi muốn kiểm tra tính đúng đắn của một chữ ký số Thuật toán nhận đầu vào là 1 tin nhắn, chữ ký số của tin nhắn đó và khóa công khai của người sở hữu tin nhắn & chữ ký số, đầu ra của thuật toán là câu trả lời "đúng" hoặc "sai" Thuật toán này là thuật toán đơn định 2.1.8 Tạo chữ ký số. .. thực chữ ký ở V :Cung cấp dịch vụ cho client kiểm tra tính đúng đắn của một chữ ký 2.1.6 Một số mô hình chữ ký số trong thực tế : Mô hình chữ ký số RSA trong các hệ thống quản lý : Quá trình gửi và nhận các tệp văn bản phục vụ quản lý dựa vào thuật toán băm SHA-1 và thuật toán RSA • Quá trình ký và gửi các tệp văn bản Từ file cần gửi ban đầu, chương trình sẽ sử dụng hàm băm SHA-1 để mã hóa chuỗi ký tự... φ(n) * Ký số: Chữ ký trên x = 2 ∈ P là y = Sig k (x) = x a (mod n)= 2 3 (mod 15) = 8, * Kiểm tra chữ ký: y ∈ A Verk (x, y) = đúng ⇔ x ≡ y b (mod n) ⇔ 2 ≡ 8 3 (mod 15) Độ an toàn của chữ ký RSA * Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA: Bài toán tách số nguyên n thành tích của 2 số nguyên tố: n = p*q Vì nếu giải được bài toán này thì có thể tính được khóa mật a từ khóa công khai b và phần... cụ chính trong việc tạo ra chữ ký số Qua việc trình bày ở trên ta thấy được sự an toàn cũng như cách tránh tấn công vào hệ mã hóa RSA 2.1.5 Mô hình chữ ký số trong thực tế 24 Hình 2.1.Mô hình chữ ký số trong thực tế Dịch vụ cung cấp ở client S : Dịch vụ ở phía client cho phép tạo chữ ký số σcho văn bản đầu vào m Dịch vụ xác thực chữ ký Dịch vụ của server G (CA) chứng thực số : Cung cấp khóa công khai,... trình tìm hiểu em nhận thấy phương án tối ưu là : Hãy ký trước, sau đó mã hoá cả chữ ký Hệ mã hóa RSA được ứng dụng rất nhiều trong việc an toàn bảo mật thông tin và một ứng dụng quan trong là tạo ra chữ ký số và mã hóa thông tin một cách an toàn o Quá trình ký và xác nhận chữ ký như sau : Giả sử Tom có 2 loại khóa : Khóa công khai (Public key) và Khóa bí mật (Private key) Bất kỳ ai cũng có thế có... SHA-1 mã hóa thành giá trị băm 2 (Kiểm tra giá trị băm 1 và giá trị băm 2 có giống nhau hay không? Nếu giống nhau thì file nhận được là toàn vẹn, không bị thay đổi, ngược lại là file đã bị thay đổi 26 Hình 2.3.Xác thực chữ ký Chữ ký số RSA sử dụng các công cụ : Chữ ký số RSA là một trong những loại chữ ký số sử dụng phổ biến hiện nay, nó sử dụng những công cụ chính : - Số học - Hàm băm mật mã học - Mật... hóa RSA) 2.1.7 Lược đồ chữ ký số Khi đề cập đến 1 lược đồ chữ ký số, người ta luôn phải đề cập đến 4 thuật toán sau: • Thuật toán khởi tạo tham số của hệ thống: Là một thuật toán /xác suất/ nhận đầu vào là một tham số bảo mật k (k còn được gọi là độ dài bảo mật) và đưa ra các tham số chung cho hệ thống Thuật toán này thường được tiến hành bởi server của hệ thống Với RSA là việc chọn ngẫu nhiên các số. .. Người gửi G gửi tài liệu x cùng chữ ký y đến người nhận N, có 2 cách xử lý: a) Ký trước, mã hóa sau: G ký trước vào x bằng chữ ký y = SigG (x), sau đó mã hoá x và y nhận được z = eG (x, y) G gửi z cho N Nhận được z, N giải mã z để được x, y Tiếp theo kiểm tra chữ ký VerN (x, y) = true ? b) Mã hóa trước, ký sau: G mã hoá trước x bằng u = eG (x), sau đó ký vào u bằng chữ ký v = SigG (u) G gửi (u, v) cho

Ngày đăng: 19/06/2016, 19:44

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w