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

Xây dựng sản phẩm tạo chữ ký số và giải mã chữ ký số cho các hợp Đồng kinh tế

38 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Xây Dựng Sản Phẩm Tạo Chữ Ký Số Và Giải Mã Chữ Ký Số Cho Các Hợp Đồng Kinh Tế
Tác giả Cao Trung Đức, Nguyễn Văn Đức, Trần Văn Đức, Trịnh Mai Dương
Người hướng dẫn TS. Lê Thị Anh
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Thí Nghiệm / Thực Nghiệm
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 38
Dung lượng 4,03 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU VÀ MỤC TIÊU CỦA ĐỀ TÀI (8)
    • 1.1. Giới thiệu đề tài (8)
    • 1.2. Mục tiêu đề tài (9)
    • 1.3. Phương pháp nghiên cứu (9)
    • 1.4. Kết quả dự kiến đạt được (9)
  • CHƯƠNG 2. TỔNG QUAN VỀ AN TOÀN, BẢO MẬT THÔNG TIN VÀ CHỮ KÝ SỐ TRONG HỢP ĐỒNG KINH TẾ (11)
    • 2.1. An toàn, bảo mật thông tin (11)
      • 2.1.1. Tìm hiểu chung về an toàn, bảo mật thông tin (11)
      • 2.1.2. Tầm quan trọng của bảo mật thông tin (13)
    • 2.2. Hệ mã hoá RSA (13)
      • 2.2.1. Giới thiệu chung về hệ mã hoá RSA (13)
      • 2.2.2. Cơ sở toán học hệ mã hoá RSA (14)
    • 2.3. Hàm băm (Hash function) (16)
      • 2.3.1. Giới thiệu về hàm băm (16)
      • 2.3.2. Thuật toán SHA-256 (16)
    • 2.4. Chữ ký số (Digital signature) (17)
      • 2.4.1. Tìm hiểu chung về chữ ký số (17)
      • 2.4.2. Nguyên lý hoạt động (18)
      • 2.4.3. Ứng dụng chữ ký số trong các hợp đồng kinh tế (21)
  • CHƯƠNG 3. THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH (22)
    • 3.1. Giới thiệu về ngôn ngữ và công cụ sử dụng (22)
      • 3.1.1. HTML (Hypertext Markup Language) (22)
      • 3.1.2. CSS (Cascading Style Sheets) (23)
      • 3.1.3. JS (JavaScript) (24)
      • 3.1.4. Visual Studio Code (25)
    • 3.2. Thiết kế giao diện (26)
      • 3.2.1. Giao diện tạo cặp khoá (26)
      • 3.2.2. Giao diện tạo chữ ký số (26)
      • 3.2.3. Giao diện xác thực chữ ký số (27)
      • 3.2.4. Giao diện hướng dẫn (28)
    • 3.3. Cài đặt chương trình (28)
    • 3.4. Kiểm thử chương trình (31)
  • CHƯƠNG 4. KẾT QUẢ THỰC HIỆN (34)
    • 4.1. Nội dung đã thực hiện (34)
    • 4.2. Thuận lợi và khó khăn trong quá trình nghiên cứu (34)
    • 4.3. Hướng phát triển (35)
  • TÀI LIỆU THAM KHẢO (37)

Nội dung

PHÂN CÔNG NHIỆM VỤ NHÓM 3Trưởng nhóm: Cao Trung Đức - Xây dựng chương trình Cao Trung Đức - Code hàm sinh khoá, hàm mã hoá, hàm hash file mảng nhị phân thành chuỗi 256 bit 32 bytes - Thi

GIỚI THIỆU VÀ MỤC TIÊU CỦA ĐỀ TÀI

Giới thiệu đề tài

Theo Báo cáo số 54/BC-BTTTT, ngày 30/3/2022, Bộ Thông tin và Truyền thông đã chỉ ra rằng Việt Nam đang nỗ lực thực hiện Nghị quyết số 17/NQ-CP, nhằm phát triển Chính phủ điện tử giai đoạn 2019 - 2020 và định hướng đến 2025 Mục tiêu chính là tăng cường bảo mật trong giao dịch thương mại điện tử, đóng góp quan trọng vào sự phát triển kinh tế - xã hội của đất nước.

Tính đến ngày 23/3/2022, Nền tảng tích hợp, chia sẻ dữ liệu quốc gia (NDXP) đã ghi nhận 47.999.563 giao dịch trong tháng 3/2022, tăng hơn 18 lần so với tháng 3/2021 Tổng số giao dịch của Quý I/2022 đạt 134.596.504, tăng 24 lần so với cùng kỳ năm trước, với trung bình hàng ngày có hơn 1,5 triệu giao dịch Đây là mức tăng trưởng cao nhất trong khu vực Đông Nam Á Tuy nhiên, để đảm bảo sự phát triển bền vững cho thương mại điện tử, việc hoàn thiện chính sách an toàn và bảo mật thông tin là điều cần thiết.

Gần đây, Việt Nam đã chứng kiến nhiều vụ vi phạm bảo mật thông tin, chủ yếu liên quan đến lộ thông tin cá nhân và tấn công mạng Một vấn đề quan trọng trong thương mại điện tử là bảo mật hợp đồng kinh tế, trong đó chữ ký số đóng vai trò then chốt trong việc xác thực tính hợp lệ của các hợp đồng giữa hai bên Việc sử dụng chữ ký số không chỉ đảm bảo tính bảo mật và toàn vẹn của hợp đồng mà còn giúp tiết kiệm thời gian và chi phí, nâng cao hiệu quả công việc mà không cần sự can thiệp của bên thứ ba Nhận thấy tiềm năng của chữ ký số, nhóm 3 đã quyết định nghiên cứu và phát triển sản phẩm tạo chữ ký số và giải mã chữ ký số cho các hợp đồng kinh tế.

Mục tiêu đề tài

 Nắm vững các khái niệm về chữ ký điện tử, thuật toán RSA, hàm băm, mã hóa bất đối xứng.

 Học được cách áp dụng kiến thức lý thuyết vào thực tế và giải quyết các vấn đề thực tế.

 Học được cách phân tích, thiết kế và triển khai một hệ thống bảo mật thông tin có tính ứng dụng cao.

 Nắm vững ngôn ngữ lập trình JS để xây dựng chương trình ứng dụng demo cho chữ ký điện tử.

 Rèn luyện kỹ năng phân tích và thiết kế hệ thống bảo mật.

 Rèn luyện kỹ năng làm việc nhóm, giao tiếp và trao đổi thông tin.

 Rèn luyện kỹ năng tự học và tìm kiếm thông tin.

 Nâng cao kỹ năng viết báo cáo kỹ thuật và trình bày kết quả của dự án.

Phương pháp nghiên cứu

 Phỏng vấn người sử dụng

 Phân tích số liệu thống kê

 Thử nghiệm và hiệu suất

Kết quả dự kiến đạt được

Nhóm sinh viên chúng em dự kiến nghiên cứu ứng dụng của hệ thống RSA trong chữ ký số cho hợp đồng kinh tế, nhằm đóng góp vào sự phát triển của lĩnh vực này.

Phần mềm thiết kế và phát triển cho phép người dùng tạo và giải mã chữ ký số trong hợp đồng kinh tế Người dùng có thể nhập thông tin cần ký, sử dụng thuật toán RSA để tạo ra chữ ký số an toàn và duy nhất Bên cạnh đó, phần mềm cũng cho phép người dùng nhập chữ ký số và kiểm tra tính toàn vẹn cùng nguồn gốc thông tin bằng cách sử dụng khóa công khai của người tạo chữ ký.

Kết quả này hỗ trợ xây dựng môi trường kinh doanh trực tuyến an toàn và tin cậy, thúc đẩy phát triển giao dịch tài chính trực tuyến, chính trị điện tử và bảo vệ thông tin cá nhân trên Internet.

TỔNG QUAN VỀ AN TOÀN, BẢO MẬT THÔNG TIN VÀ CHỮ KÝ SỐ TRONG HỢP ĐỒNG KINH TẾ

An toàn, bảo mật thông tin

2.1.1 Tìm hiểu chung về an toàn, bảo mật thông tin

Hình 2.1: Ảnh minh hoạ an toàn, bảo mật thông tin

Khi nhu cầu trao đổi thông tin ngày càng tăng, các công nghệ điện tử, viễn thông và thông tin liên tục phát triển để cải thiện chất lượng và lưu lượng truyền tin Điều này dẫn đến việc đổi mới các quan niệm và biện pháp bảo vệ thông tin dữ liệu Bảo vệ an toàn thông tin là một chủ đề rộng lớn, liên quan đến nhiều lĩnh vực, với nhiều phương pháp khác nhau được áp dụng để đảm bảo an toàn cho dữ liệu.

 Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm sau:

 Bảo vệ an toàn thông tin bằng các biện pháp hành chính.

 Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).

 Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).

Hai nhóm này có thể được áp dụng độc lập hoặc kết hợp với nhau Môi trường mạng và truyền tin là nơi khó bảo vệ an toàn thông tin nhất, đồng thời cũng là khu vực mà đối phương dễ dàng xâm nhập Do đó, việc triển khai biện pháp bảo mật hiệu quả là rất cần thiết.

8 kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán.

 An toàn thông tin bao gồm các nội dung sau:

 Tính bí mật: tính kín đáo riêng tư của thông tin.

 Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác thực thông tin trao đổi.

 Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi.

Để đảm bảo an toàn thông tin dữ liệu trên đường truyền và mạng máy tính, điều quan trọng là phải dự đoán các khả năng không an toàn và xâm phạm Việc xác định chính xác các nguy cơ sẽ giúp đề xuất các giải pháp hiệu quả nhằm giảm thiểu thiệt hại cho thông tin dữ liệu được lưu trữ và trao đổi.

 Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động.

Vi phạm thụ động chủ yếu nhằm mục đích thu thập thông tin, thường là đánh cắp dữ liệu mà không cần hiểu rõ nội dung cụ thể Hành vi này có thể xác định được người gửi và người nhận thông qua thông tin điều khiển trong tiêu đề của các gói tin Mặc dù vi phạm thụ động không làm sai lệch hay hủy hoại nội dung thông tin, nhưng chúng thường khó phát hiện Tuy nhiên, vẫn có những biện pháp ngăn chặn hiệu quả để bảo vệ dữ liệu khỏi những hành vi này.

Vi phạm chủ động là hành vi có khả năng thay đổi, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc lặp lại gói tin trong quá trình trao đổi thông tin Hành vi này cũng có thể thêm thông tin ngoại lai, dẫn đến sai lệch nội dung Mặc dù vi phạm chủ động dễ phát hiện, việc ngăn chặn chúng lại gặp nhiều khó khăn.

Không có biện pháp bảo vệ an toàn thông tin dữ liệu nào hoàn toàn an toàn Dù hệ thống được bảo vệ đến mức nào, vẫn không thể đảm bảo an toàn tuyệt đối.

2.1.2 Tầm quan trọng của bảo mật thông tin

Bảo mật thông tin là yếu tố thiết yếu trong mọi hoạt động, đặc biệt là trong lĩnh vực điện tử Trong thời đại số hiện nay, việc đảm bảo an toàn cho dữ liệu trở nên ngày càng cấp thiết và quan trọng hơn bao giờ hết.

Hiện nay, tình hình hacker ngày càng trở nên phổ biến và nguy hiểm, đòi hỏi sự chú ý đặc biệt đến việc bảo mật thông tin Việc bảo vệ thông tin cá nhân và doanh nghiệp là cực kỳ quan trọng, vì thông tin đó có thể bị lộ ra ngoài nếu không được bảo mật tốt Nếu tin tặc xâm nhập thành công vào hệ thống bảo vệ, thông tin nhạy cảm có thể rơi vào tay họ hoặc đối thủ cạnh tranh, gây ra những hậu quả nghiêm trọng.

Hệ mã hoá RSA

2.2.1 Giới thiệu chung về hệ mã hoá RSA

Hình 2.2: Ảnh minh hoạ hệ mã hoá RSA

RSA, viết tắt từ tên ba nhà toán học Rivest, Shamir và Adleman, là thuật toán mã hóa khóa công khai phổ biến nhất hiện nay Được phát triển vào năm 1977, RSA sử dụng cặp khóa (khóa công khai và khóa riêng tư) để mã hóa và giải mã thông tin An ninh của RSA dựa trên sự phức tạp của các phép toán số học, đặc biệt là việc phân tích số nguyên thành thừa số nguyên tố.

10 khó khăn của việc phân tích thành phần nguyên tố của một số nguyên lớn, được gọi là vấn đề phân tích nguyên tố.

 RSA sử dụng hai loại khóa:

 Khóa công khai: Được chia sẻ công khai cho phép bất kỳ ai mã hóa thông tin.

 Khóa bí mật: Giữ bí mật và chỉ được sử dụng để giải mã thông tin được mã hóa bằng khóa công khai tương ứng.

 Mã hóa và giải mã:

 Mã hóa: Người gửi sử dụng khóa công khai của người nhận để mã hóa thông tin.

 Giải mã: Người nhận sử dụng khóa bí mật của mình để giải mã thông tin được mã hóa bằng khóa công khai của họ.

Khóa công khai giống như chìa khóa để đóng hộp, trong khi khóa bí mật là chìa khóa để mở hộp Người dùng có thể mã hóa thông tin bằng khóa công khai, nhưng chỉ người sở hữu khóa bí mật mới có khả năng giải mã và truy cập nội dung bên trong.

2.2.2 Cơ sở toán học hệ mã hoá RSA

Hệ mật RSA sử dụng các phép toán trong trường số nguyên modulo Zn, với n là tích của hai số nguyên tố phân biệt p và q.

 Cho n = p * q trong đó p và q là các số nguyên tố

 Đặt P = C = Zn và định nghĩa:

 p, q là các số nguyên tố, a * b ≡ 1(mod ∅(n))

 dk(y) = y^a mod n các giá trị n và b được công khai và các giá trị p, q, a được giữ kín

 Quá trình thực hiện hệ mật RSA: (người gửi: Alice; người nhận: Bob):

 Bob tạo hai số nguyên tố lớn p và q

 Bob chọn một số ngẫu nhiên e (0 < e < (n)) sao cho gcd(e, ∅ ∅(n))=1

 Bob tính d * e ≡ 1 mod (n) bằng cách dùng thuật toán Euclide∅

 Bob công bố n và e trong một danh bạ và dùng chúng làm khoá công khai

 Mô tả cách hoạt động của RSA:

 Bước này bao gồm quá trình tạo ra cặp khóa gồm khóa công khai (public key) và khóa bí mật (private key)

 Đầu tiên, chọn hai số nguyên tố lớn p và q

 Tính toán modulus (n) bằng cách nhân p và q: n = p * q

 Tính toán hàm Euler (phi) của n: phi = (p – 1) * (q – 1)

 Chọn một số nguyên e sao cho 1 < e < phi(n) và e là số nguyên tố cùng nhau với phi

 Tính toán khóa bí mật d bằng cách tìm nghịch đảo modulo của e theo modulo phi: d = e^-1 mod phi

 Khóa công khai là cặp (n, e) và khóa bí mật là cặp (n, d)

 Để mã hóa một thông điệp (plaintext), chia nó thành các khối nhỏ

 Mỗi khối được biểu diễn bằng một số nguyên m (nhỏ hơn n)

 Áp dụng công thức mã hóa: ciphertext = m^e mod n

 Kết quả là ciphertext (văn bản mã hóa)

 Khi nhận được ciphertext, để giải mã ta sử dụng khóa bí mật (n, d)

 Áp dụng công thức giải mã: plaintext = ciphertext^d mod n

 Kết quả là plaintext (văn bản gốc)

Hàm băm (Hash function)

2.3.1 Giới thiệu về hàm băm

Hàm băm (hash function) là thuật toán chuyển đổi dữ liệu đầu vào thành giá trị cố định, thường là chuỗi số Đặc điểm quan trọng của hàm băm bao gồm tính duy nhất, nghĩa là mỗi đầu vào tạo ra giá trị riêng biệt; tính không thể đảo ngược, tức là không thể phục hồi dữ liệu gốc từ giá trị băm; và tính nhạy cảm, cho thấy rằng một thay đổi nhỏ trong dữ liệu đầu vào sẽ dẫn đến sự thay đổi lớn trong giá trị băm.

Hàm băm có nhiều ứng dụng quan trọng, bao gồm bảo mật, lưu trữ mật khẩu và tìm kiếm dữ liệu Trong lĩnh vực bảo mật, hàm băm được sử dụng để tạo ra bản tóm tắt của dữ liệu, giúp đảm bảo tính toàn vẹn của thông tin và bảo vệ thông tin gốc khỏi việc bị lộ.

Hình 2.3: Ảnh minh hoạ hàm băm

Hệ thống RSA và hàm băm có thể kết hợp để nâng cao bảo mật thông tin Hàm băm thường được dùng để tạo tóm tắt (digest) của thông điệp hoặc dữ liệu gốc, sau đó chữ ký số được tạo ra dựa trên tóm tắt này Điều này nhằm đảm bảo tính toàn vẹn của thông điệp và xác nhận rằng nó không bị thay đổi trong quá trình truyền tải.

SHA-256, hay Thuật toán băm an toàn 256 bit, là một hàm băm mật mã phổ biến được sử dụng để bảo vệ dữ liệu Được phát triển bởi Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) và công bố vào năm 2001, SHA-256 đóng vai trò quan trọng trong việc đảm bảo an toàn thông tin.

 SHA-256 nhận một lượng dữ liệu đầu vào bất kỳ, có thể là văn bản, hình ảnh, video, hoặc bất kỳ loại dữ liệu nào khác.

Nó thực hiện xử lý dữ liệu đầu vào thông qua nhiều bước tính toán phức tạp, từ đó tạo ra một giá trị băm cố định với độ dài 256 bit (32 byte).

 Giá trị băm này được gọi là digest hoặc fingerprint của dữ liệu đầu vào.

Chữ ký số (Digital signature)

2.4.1 Tìm hiểu chung về chữ ký số

Chữ ký số là một loại chữ ký điện tử, được tạo ra thông qua việc biến đổi dữ liệu bằng hệ thống mật mã công khai Điều này cho phép người sở hữu dữ liệu gốc và khóa công khai của người ký xác định chính xác tính xác thực của thông điệp.

 Việc biến đổi nêu trên được tạo ra bằng đúng khóa bí mật tương ứng với khóa công khai trong cùng một cặp khóa

 Sự toàn vẹn nội dung của thông điệp dữ liệu kể từ khi thực hiện biến đổi.

 Đặc điểm chữ ký số:

Chữ ký số, thông qua chứng thư số của cá nhân, tổ chức, doanh nghiệp, đóng vai trò quan trọng trong việc xác thực danh tính của chủ sở hữu.

Chữ ký số đảm bảo tính bảo mật cao, gần như tuyệt đối, giúp bảo vệ thông tin khỏi các cuộc tấn công của hacker Điều này được thực hiện thông qua việc sử dụng hai lớp mã khóa bảo mật: khóa bí mật và khóa công khai.

Chữ ký số đảm bảo tính toàn vẹn cho văn bản và tài liệu, cho phép chỉ người nhận duy nhất có thể mở chúng Điều này giúp bảo vệ thông tin trong môi trường giao dịch điện tử, đảm bảo rằng mọi dữ liệu của tài liệu đều được giữ nguyên và không bị thay đổi.

Chữ ký số có tính chống chối bỏ, nghĩa là khi các văn bản, tài liệu hoặc hợp đồng đã được ký bằng chữ ký số, thì chữ ký này không thể bị thay thế hay xóa bỏ.

Chữ ký số hiện nay được sử dụng bởi mọi cá nhân và tổ chức với nhiều mục đích cụ thể Các đối tượng này áp dụng chữ ký số để nâng cao tính bảo mật và hợp pháp hóa các giao dịch trực tuyến.

Chữ ký số dành cho cá nhân hoặc cá nhân thuộc tổ chức, doanh nghiệp là công cụ quan trọng trong việc khai nộp thuế thu nhập cá nhân, thực hiện khai báo trên trang đăng ký kinh doanh, và ký kết hợp đồng lao động với đơn vị sử dụng lao động.

Chữ ký số là công cụ thiết yếu cho doanh nghiệp và tổ chức, được sử dụng để kê khai và nộp thuế, đăng ký bảo hiểm xã hội, cũng như thực hiện các thủ tục hải quan Ngoài ra, chữ ký số còn hỗ trợ trong việc ký kết văn bản nội bộ, giao dịch đối soát và chuyển khoản ngân hàng, cùng nhiều ứng dụng khác, giúp tối ưu hóa quy trình làm việc và tăng cường tính bảo mật.

 B1: Tạo khóa bằng hệ mã hóa gồm khóa bí mật và khóa công khai Sử dụng khóa bí mật để tạo chữ ký.

 B2: Sử dụng thuật toán băm, để băm dữ liệu cần ký thành một chuỗi ký tự duy nhất với độ dài cố định Có thể gọi là chuỗi H1

Để đảm bảo kết quả chính xác khi kiểm tra chữ ký, thuật toán băm dữ liệu cần phải được thống nhất giữa người ký và người xác nhận.

Mã hóa dữ liệu sau khi băm thay vì mã hóa toàn bộ dữ liệu là lựa chọn tối ưu, vì dữ liệu băm tạo ra chuỗi có độ dài cố định, giúp tiết kiệm thời gian và giảm kích thước lưu trữ của chữ ký.

Giá trị sau khi băm là duy nhất và bất kỳ thay đổi nào trong dữ liệu, dù chỉ là một ký tự, cũng sẽ tạo ra giá trị khác Tính năng này giúp người sử dụng xác định tính toàn vẹn của dữ liệu một cách hiệu quả.

Sử dụng khóa bí mật để mã hóa chuỗi băm từ dữ liệu gốc theo hệ mã hóa đã chọn, và bản mã từ quá trình này chính là chữ ký số được tạo ra.

 B4: Gửi dữ liệu cần xác thực và chữ ký người nhận Có thể thực hiện theo 2 cách:

 Gửi riêng chữ ký và dữ liệu gốc cho người nhận.

Ghép chữ ký vào nội dung dữ liệu cần ký và gửi cho người nhận Sau khi nhận dữ liệu, người nhận sẽ tách chữ ký ra khỏi nội dung gốc để xác thực tính hợp lệ của chữ ký.

Hình 2.4: Ảnh minh hoạ tạo chữ ký số

 Quá trình kiểm tra chữ ký:

Để xử lý dữ liệu hiệu quả, trước tiên cần nhận dữ liệu gốc và chữ ký của người ký Nếu chữ ký đã được ghép vào dữ liệu gốc, cần tách riêng nội dung và chữ ký để có thể xử lý chúng một cách độc lập.

Trong phần nội dung gốc, người nhận thực hiện công việc tương tự như người ký, sử dụng chương trình thuật toán băm đã được thống nhất với người ký để tiến hành băm dữ liệu gốc, được gọi là chuỗi H2.

THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH

Giới thiệu về ngôn ngữ và công cụ sử dụng

Hình 3.1: Ảnh minh hoạ HTML

HTML, hay còn gọi là Ngôn ngữ đánh dấu siêu văn bản, là ngôn ngữ phổ biến nhất để phát triển trang web Nó đóng vai trò quan trọng trong việc xây dựng cấu trúc và nội dung cho các trang web.

 Cấu trúc cơ bản của HTML:

Thẻ (Tag) là các đơn vị cơ bản giúp định nghĩa cấu trúc và nội dung của trang web, được mở đầu bằng dấu < và kết thúc bằng dấu >.

để mở đầu một đoạn văn,

để kết thúc đoạn văn.

 Cấu trúc DOM (Document Object Model): Là mô hình cây thể hiện cấu trúc của trang web Mỗi phần tử HTML biểu diễn như một nút trong cây.

 Các thành phần chính của HTML:

 Thẻ HTML cơ bản: Định nghĩa các phần tử cơ bản của trang web như tiêu đề, đoạn văn, hình ảnh, liên kết, v.v.

 Thẻ ngữ nghĩa: Giúp trình duyệt và các công cụ tìm kiếm hiểu rõ hơn về nội dung của trang web.

 Thẻ hình ảnh: Cho phép chèn hình ảnh vào trang web.

 Thẻ liên kết: Cho phép tạo liên kết đến các trang web khác hoặc các phần khác trong cùng trang web.

 Thẻ bảng: Cho phép tạo bảng để trình bày dữ liệu.

 Biểu mẫu: Cho phép người dùng nhập dữ liệu và gửi đến máy chủ.

Hình 3.2: Ảnh minh hoạ CSS

CSS, hay còn gọi là Bảng xếp tầng kiểu, là ngôn ngữ dùng để kiểm soát cách trình bày của trang web Nó hoạt động kết hợp với HTML, ngôn ngữ định hình cấu trúc trang, nhằm tạo ra giao diện và trải nghiệm người dùng mong muốn.

 CSS có thể làm gì?

 Kiểm soát kiểu dáng: Thay đổi màu sắc, font chữ, kích thước, khoảng cách, v.v của các phần tử HTML.

 Tạo bố cục: Xếp các phần tử HTML thành các cột, hàng, hoặc các bố cục phức tạp hơn.

 Thêm các hiệu ứng: Thêm bóng đổ, chuyển tiếp, hoạt ảnh và các hiệu ứng khác để làm cho trang web trở nên sống động hơn.

Đảm bảo tính tương thích với nhiều thiết bị khác nhau bằng cách sử dụng các media query, giúp thay đổi giao diện của trang web phù hợp với kích thước màn hình của điện thoại, máy tính bảng và máy tính.

Hình 3.3: Ảnh minh hoạ JS

 JavaScript, thường được viết tắt là JS, là một ngôn ngữ lập trình linh hoạt và mạnh mẽ được sử dụng rộng rãi trên web và nhiều nơi khác.

 Những điều cơ bản về JavaScript:

Ngôn ngữ kịch bản hoạt động trên trình duyệt (client-side) hoặc máy chủ (server-side), giúp tạo ra các hành vi động cho trang web hoặc ứng dụng.

 Ngôn ngữ đa paradigm: Hỗ trợ các phong cách lập trình khác nhau như thủ tục, hướng đối tượng và lập trình hàm.

Ngôn ngữ được gõ động cho phép bạn không cần khai báo kiểu dữ liệu của biến trước khi sử dụng, tuy nhiên, điều này có thể ảnh hưởng đến hiệu suất và độ tin cậy của chương trình.

 Những điều JavaScript có thể làm:

 Tạo các phần tử HTML động: Thay đổi nội dung và giao diện của trang web mà không cần tải lại toàn bộ trang.

 Xử lý các sự kiện: Đáp ứng với các hành động của người dùng như nhấp chuột, nhập văn bản, v.v.

 Xây dựng các ứng dụng web phức tạp: Thực hiện logic phức tạp, giao tiếp với máy chủ, lưu trữ dữ liệu và hơn thế nữa.

 Phát triển ứng dụng di động và máy tính để bàn: Sử dụng các framework như React Native và Electron để xây dựng các ứng dụng đa nền tảng.

Hình 3.4: Ảnh minh hoạ VS Code

Visual Studio Code, hay còn gọi là VS Code, là một trình soạn thảo mã nguồn miễn phí do Microsoft phát triển Nó được ưa chuộng bởi các nhà phát triển ở mọi cấp độ nhờ vào các tính năng phong phú và khả năng mở rộng linh hoạt.

 Dưới đây là một số điểm chính khiến VS Code trở nên phổ biến:

 Đa nền tảng: VS Code có sẵn cho Windows, macOS và Linux.

 Nhẹ và nhanh: Dung lượng tải xuống tương đối nhỏ và chạy mượt mà trên hầu hết các hệ thống.

VS Code nổi bật với chức năng làm nổi bật cú pháp cho nhiều ngôn ngữ lập trình, cùng với IntelliSense, giúp cung cấp gợi ý hoàn thành mã khi bạn nhập.

VS Code tích hợp Git, giúp bạn dễ dàng quản lý thay đổi mã và cộng tác hiệu quả với người khác.

VS Code nổi bật với khả năng mở rộng vượt trội nhờ vào kho ứng dụng phong phú, cho phép người dùng bổ sung nhiều tính năng và chức năng mới Chẳng hạn, người dùng có thể tìm thấy các tiện ích mở rộng hỗ trợ gỡ lỗi, kiểm tra mã và nhiều công cụ hữu ích khác, giúp nâng cao hiệu quả làm việc.

Thiết kế giao diện

3.2.1 Giao diện tạo cặp khoá

 Vị trí nhập phạm vi cặp số nguyên tố

 Vị trí nhập cặp số p, q

 Nút "Tạo cặp số nguyên tố ngẫu nhiên"

 Nút "Chuyển dữ liệu" để chuyển khoá bí mật sang tab "Tạo chữ ký số" và khoá công khai sang tab "Xác thực chữ ký số"

 Nút "Xoá tất cả" để làm trống các ô nhập

Hình 3.5: Ảnh minh hoạ giao diện tạo cặp khoá

3.2.2 Giao diện tạo chữ ký số

 Vị trí chọn file cần ký

 Vị trí nhập khoá bí mật

 Nút "Tạo chữ ký" để ký file

 Nút "Lưu chữ ký" để tải xuống file chữ ký

 Nút "Chuyển dữ liệu" để chuyển chữ ký sang tab "Xác thực chữ ký số"

 Nút "Xoá tất cả" để làm trống các ô nhập

Hình 3.6: Ảnh minh hoạ giao diện tạo chữ ký số

3.2.3 Giao diện xác thực chữ ký số

 Vị trí chọn file cần xác thực

 Vị trí nhập khoá công khai

 Vị trí nhập chữ ký

 Nút "Xác thực chữ ký" để chứng thực file và chữ ký

 Nút "Tải lên chữ ký" để tải lên file chữ ký

 Nút "Xoá tất cả" để làm trống các ô nhập

Hình 3.7: Ảnh minh hoạ giao diện xác thực chữ ký số

Hình 3.8: Ảnh minh hoạ giao diện hướng dẫn

Cài đặt chương trình

 Hàm kiểm tra số nguyên tố:

Hình 3.9: Định nghĩa hàm kiểm tra số nguyên tố

 Hàm sinh số nguyên tố:

Hình 3.10: Định nghĩa hàm sinh số nguyên tố

 Hàm tìm phần tử nghịch đảo modulo:

Hình 3.11: Định nghĩa hàm nghịch đảo modulo

 Hàm tính a^b mod n bằng phương pháp đệ quy:

Hình 3.12: Định nghĩa hàm tính a^b mod n

Hình 3.13: Định nghĩa hàm sinh cặp khoá

 Hàm mã hoá sử dụng khoá bí mật:

Hình 3.14: Định nghĩa hàm mã hoá

 Hàm giải mã sử dụng khoá công khai:

Hình 3.15: Định nghĩa hàm giải mã

Kiểm thử chương trình

 Test case 1: Cặp số nguyên tố từ 100000 đến 9000

Thông báo: Phạm vi không hợp lệ!

 Test case 2: Cặp số nguyên tố từ 100000 đến 100001

Không tìm được 2 số nguyên tố khác nhau trong phạm vi!

 Test case 3: Cặp số nguyên tố từ 100000 đến 900000

 Test case 4: File cần ký, khoá bí mật (329890141815, 374302045801)

Hình 3.16: Ảnh minh hoạ thông tin file cần ký

Hình 3.17: Ảnh minh hoạ chữ ký

 Test case 5: File cần xác thực (File vừa dùng để ký), khoá công khai

(273598675607, 374302045801), chữ ký (Chưa chỉnh sửa)

Thông báo: File chưa chỉnh sửa!

 Test case 6: File cần xác thực (File bản sao không chỉnh sửa nội dung và đổi tên file), khoá công khai (Chưa chỉnh sửa), chữ ký (Chưa chỉnh sửa)

Thông báo: File chưa chỉnh sửa!

 Test case 7: File cần xác thực (File bản sao đã chỉnh sửa nội dung), khoá công khai (Chưa chỉnh sửa), chữ ký (Chưa chỉnh sửa)

Hình 3.18: Ảnh minh hoạ file đã chỉnh sửa

Thông báo: File, chữ ký hoặc khoá đã chỉnh sửa!

 Test case 8: File cần xác thực (File dùng để ký), khoá công khai (Đã chỉnh sửa), chữ ký (Chưa chỉnh sửa)

Thông báo: File, chữ ký hoặc khoá đã chỉnh sửa!

 Test case 9: File cần xác thực (File dùng để ký), khoá công khai (Chưa chỉnh sửa), chữ ký (Đã chỉnh sửa)

Thông báo: File, chữ ký hoặc khoá đã chỉnh sửa!

KẾT QUẢ THỰC HIỆN

Nội dung đã thực hiện

 Với đề tài ứng dụng của RSA trong chữ ký số điện tử, nhóm 3 đã nghiên cứu các nội dung sau:

 Nghiên cứu, tìm hiểu hệ mã hóa công khai.

 Các thuật toán liên quan tới hệ mã RSA.

 Tìm hiểu về các ngôn ngữ lập trình, công cụ hỗ trợ xây dựng demo chương trình: JavaScript, CSS, HTML.

Thuận lợi và khó khăn trong quá trình nghiên cứu

Thuật toán RSA là một trong những phương pháp mã hóa khóa công khai và chữ ký số phổ biến nhất, đóng vai trò quan trọng trong việc bảo mật thông tin.

 Nghiên cứu về ứng dụng của RSA trong chữ ký số có thể mang lại nhiều kết quả có ứng dụng thực tế và sâu sắc.

Chữ ký số và hệ thống chữ ký số điện tử là yếu tố then chốt trong việc xác thực danh tính và chứng thực thông tin trong môi trường truyền thông điện tử.

 Nghiên cứu về cách cải thiện hiệu suất và bảo mật của hệ thống RSA có thể đưa ra những tiến bộ đáng kể trong lĩnh vực này.

Một số thành viên chưa quen thuộc với ngôn ngữ JavaScript, vì vậy cần dành thời gian để làm quen với cú pháp và phương pháp lập trình giao diện bằng JS.

 Việc tìm hiểu kiến thức về toán học đòi hỏi sự tư duy cao.

 RSA sử dụng các phép toán số học lớn và đối mặt với thách thức về hiệu suất trong xử lý số lớn.

Hướng phát triển

Chữ ký số RSA là một phương pháp mã hóa và xác nhận chữ ký quan trọng trong bảo mật thông tin Để nâng cao hiệu quả và khả năng ứng dụng của chữ ký số RSA, cần xem xét một số cải tiến cần thiết.

Tăng kích thước khóa sẽ làm cho việc tìm kiếm khóa riêng tư trở nên khó khăn hơn, nhờ vào việc phân tích dựa trên sức mạnh tính toán.

Tích hợp RSA với công nghệ mới như trí tuệ nhân tạo (AI) giúp phát hiện và ngăn chặn tấn công hiệu quả hơn, đồng thời việc kết hợp với mô hình blockchain cung cấp tính toàn vẹn và xác nhận trong hệ thống phi tập trung.

Để tăng cường hiệu suất trong quá trình tạo chữ ký và xác nhận, cần cải thiện qua việc tối ưu hóa mã nguồn, sử dụng phần cứng tăng tốc, và áp dụng các kỹ thuật khác nhằm giảm thiểu thời gian xử lý.

Chữ ký số đa yếu tố kết hợp chữ ký số RSA với các phương tiện xác thực khác như mật khẩu, tạo ra một lớp bảo mật mạnh mẽ hơn cho các hệ thống Việc tích hợp này không chỉ nâng cao tính an toàn mà còn đảm bảo rằng thông tin được bảo vệ hiệu quả trước các mối đe dọa tiềm ẩn.

Trong tương lai, chữ ký số RSA sẽ giữ vai trò quan trọng trong nhiều lĩnh vực, đặc biệt trong bối cảnh phát triển nhanh chóng của thế giới số Các ứng dụng tiềm năng của chữ ký số RSA sẽ ngày càng đa dạng và thiết yếu.

Bảo mật giao dịch tài chính là yếu tố quan trọng trong thế giới trực tuyến, và chữ ký số RSA đóng vai trò then chốt trong việc đảm bảo tính toàn vẹn và xác thực Việc sử dụng chữ ký số giúp bảo vệ các giao dịch khỏi các mối đe dọa như tấn công giả mạo và gian lận, mang lại sự an tâm cho người dùng khi thực hiện các giao dịch tài chính.

Chữ ký số trong Blockchain đóng vai trò quan trọng trong việc xác minh tính toàn vẹn của các khối dữ liệu Việc tích hợp RSA vào các hệ thống blockchain giúp nâng cao mức độ an toàn và độ tin cậy của thông tin.

Quản lý điện tử và chữ ký điện tử đang trở nên ngày càng quan trọng trong môi trường làm việc hiện đại Chữ ký số RSA được áp dụng rộng rãi để chứng nhận và xác thực các tài liệu trực tuyến, từ đó tạo ra một môi trường làm việc điện tử an toàn và hiệu quả.

Xác thực trong y tế điện tử là rất quan trọng, vì chữ ký số giúp bảo vệ an toàn thông tin bệnh nhân và xác thực các tài liệu y tế trực tuyến một cách hiệu quả.

Chữ ký số RSA là một giải pháp quan trọng trong Chính phủ điện tử, giúp bảo vệ thông tin nhạy cảm và xác thực danh tính người dùng Việc tích hợp các hệ thống chữ ký số này vào các dự án chính phủ điện tử sẽ nâng cao tính bảo mật và độ tin cậy trong việc xử lý thông tin.

Ngày đăng: 23/12/2024, 12:57

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

TÀI LIỆU LIÊN QUAN

w