^Back To Top

foto1 foto2 foto3 foto4 foto5


Get Adobe Flash player

Tác động của trí tuệ nhân tạo trong phương pháp dạy học đại học hiện nay

Trong vài năm trở lại đây, sự phát triển bùng nổ của trí tuệ nhân tạo (Artificial Intelligence - AI) đã làm rung chuyển mọi lĩnh vực - từ kinh tế, y tế, truyền thông cho đến giáo dục. Nếu giáo dục từng thay đổi mạnh mẽ khi Internet xuất hiện, thì AI chính là…
17

Thông báo tuyển sinh

Thông báo tuyển sinh liên thông vừa học vừa làm Thông báo tuyển sinh liên thông chính quy…
25

Bước chuyển mới trong quản lý vốn đầu tư công: cơ hội nâng cao năng lực quản lý dự án và ứng dụng tin học xây dựng

Ngày 26 tháng 9 năm 2025, Chính phủ đã chính thức ban hành Nghị định số 254/2025/NĐ-CP…
67

GitHub Copilot: Trợ thủ AI cho lập trình viên và sinh viên CNTT

Trong những năm gần đây, trí tuệ nhân tạo (AI) đã không còn giới hạn trong nghiên cứu mà…
238

Điểm mới của Nghị định 243/2025/NĐ-CP quy định chi tiết một số điều của Luật Đầu tư theo phương thức đối tác công tư

Ngày 11/9/2025, Chính phủ ban hành Nghị định số 243/2025/NĐ-CP quy định chi tiết một số…
81

Một số công cụ AI hỗ trợ viết code trong lập trình công nghệ thông tin

Ứng dụng trí tuệ nhân tạo (AI) hỗ trợ viết code là công nghệ sử dụng trí tuệ nhân tạo để…

Trong mật mã học, một ngành toán học ứng dụng cho công nghệ thông tin, mã hóa là phương pháp để biến đổi thông tin (phim ảnh, văn bản, hình ảnh...) từ định dạng bình thường sang dạng thông tin khó có thể hiểu được nếu không có kỹ thuật, công nghệ giải mã [1].

Giải mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu, quá trình ngược của mã hóa.

Một hệ thống mã hóa bao gồm các thành phần:

- Thông tin trước khi mã hóa, ký hiệu là P (Plaintext).

- Thông tin sau khi mã hóa, ký hiệu là C (Ciphertext).

- Chìa khóa, ký hiệu là K (Key).

- Phương pháp mã hóa/giải mã, ký hiệu là E/D (Encryption/Decryption).

Quá trình mã hóa được tiến hành bằng cách áp dụng hàm E lên thông tin P, vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C. Quá trình giải mã được tiến hành ngược lại là áp dụng hàm D lên thông tin C để được thông tin đã giải mã P.

1. Giới thiệu hệ mã hóa RSA

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn [2].

1.1. Thuật toán mã hóa RSA

Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được [3].

1.2. Sơ đồ mã hóa RSA

v Tạo khóa (bí mật, cộng khai) (a, b):

Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn.

Tính bí mật f(n) = (p-1)*(q-1). Chọn khóa công khai b < f(n), nguyên tố với f(n).

Khóa bí mật a là phần tử nghịch đảo của b theo mod f(n): a*b = 1 (mod f(n)).

Tập cặp khóa (bí mật, công khai) k = {(a, b)/ a, b Î Zn, a*b = 1 (mod f(n))}.

v Hàm mã hóa:

            y = ek(x) = xb mod n.

v Hàm giải mã:

            x = dk(y) = ya mod n.

2. Cài đặt và thực nghiệm mã hóa RSA

2.1. Cài đặt mã hóa RSA

t3 m2


Để cài đặt mã hóa RSA với ngôn ngữ lập trình Python. 

2.2. Thực nghiệm mã hóa RSA

Thực nghiệm với bản rõ x = HATINH, p = 5, q = 29.

v Tạo khóa:

Tính n = p * q = 5 * 29 = 145.

Tính bí mật f(n) = (p-1)*(q-1) = 4 * 28 = 112.

Chọn khóa công khai b < f(n), nguyên tố với f(n) thì chọn b = 11.

Khóa bí mật a là phần tử nghịch đảo b theo mod f(n): a*b = 1 (mod f(n)). Ta nhận được khóa bí mật a = 51 từ bảng dưới đây

 

v Bản rõ số:

HATINH = {72, 65, 84, 73, 78, 72}.

v Thực hiện mã hóa:

Theo phép lập mã: yi = xib mod n = xi11 mod 145.

Sau lập mã ta được: yi = {8, 110, 14, 137, 7, 8}

vThực hiện giải mã:

Theo phép giải mã di = yia mod n = yi51 mod 145.

t3 m1

Sau giải mã ta được: di = {72, 65, 84, 73, 78, 72} = HATINH

Hình 1. Chạy thực nghiệm mã hóa RSA.

2.3. Độ an toàn mã hóa RSA

Hệ mã hóa RSA là tất định, tức là với một bản rõ x và một khóa bí mật a, thì chỉ có một bản mã y. Hệ mật RSA an toàn, khi giữ được bí mật khóa giải mã a, p, q, f(n). Nếu biết được p và q, thì thám mã sẽ tính được a theo thuật toán Euclide mử rộng. Nhưng phân tích n thành tích của p và q là bài toán khó.

Độ án toàn của hệ mã hóa RSA dựa vào khả năng giải bài toán phân tích số nguyên dương n thàn tích của 2 số nguyên tố lớn p và q.

3. Kết luận

Bài viết giới thiệu mã hóa RSA và các bước cơ bản tiến hành cài đặt hệ mã hóa RSA thông qua kiến thức cơ bản trong học phần An toàn và bảo mật thông tin. Chúng ta có thể từng bước tìm hiểu lý thuyết và xây dựng thực nghiệm thành công hệ mã hóa RSA, giúp sinh viên ngành CNTT hiểu rõ hơn về nội dung môn học, vận dụng kiến thức lý thuyết để xây dựng cài đặt thực nghệm cho bài toán.

 

Tài liệu tham khảo

[1]. Trịnh Nhật Tiến, “Bài giảng an toàn và bảo mật thông tin”, Đại học QGHN, 2010.

 [2]. Nguyễn Hưng, mã hóa RSA? Cách thức hoạt động của mã hóa RSA, link ngày 9/12/2022: https://vietnix.vn‌/rsa/#rsa-la-gi

[3]. Lê Minh Hoàng, Hệ mật RSA, link ngày 9/12/2022: https://anninhmang.edu.vn/mat-rsa/

Sinh viên tiêu biểu