RSA (RivestShamirAdleman) là một trong những thuật toán mã hóa khóa công khai phổ biến nhất được sử dụng trong mạng thông tin. Nó dựa trên việc sử dụng một cặp khóa, bao gồm khóa công khai và khóa bí mật, cho phép mã hóa và giải mã dữ liệu. Quá trình mã hóa dữ liệu sử dụng khóa công khai, trong khi quá trình giải mã chỉ có thể được thực hiện bằng khóa bí mật tương ứng. RSA được sử dụng rộng rãi trong các ứng dụng như giao tiếp an toàn qua mạng, ký số và xác thực. Quá trình mã hóa và giải mã RSA đòi hỏi việc thực hiện các phép toán số học phức tạp như phân tích số nguyên tố lớn, tạo ra một hệ thống bảo mật mạnh mẽ trước các cuộc tấn công từ các kỹ thuật mã hoá thông thường.
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-BÀI TẬP LỚN Môn: An toàn và bảo mật thông tin
Trang 2Lời nói đầu
Trước đây, khi công nghệ máy tính chưa phát triển, việc đảm bảo an toàn vàbảo mật thông tin thường được thực hiện bằng các phương pháp truyền thống nhưđóng dấu và ký niêm phong bức thư để đảm bảo tính nguyên vẹn, sử dụng mật mã
để chỉ có người gửi và người nhận hiểu được thông điệp, và lưu trữ tài liệu trongkét sắt có khóa tại nơi được bảo vệ nghiêm ngặt
Tuy nhiên, ngày nay, với sự phát triển của khoa học công nghệ, đặc biệt là sự tiến
bộ của Internet, việc sử dụng máy tính và điện thoại cá nhân đã trở nên phổ biến.Điều này dẫn đến việc lưu trữ và truyền thông tin trên mạng Internet trở nên phứctạp hơn Do đó, nhu cầu về an toàn và bảo mật thông tin trên máy tính ngày càngtăng cao, và việc sử dụng mật mã để mã hóa thông điệp trở nên phổ biến hơn baogiờ hết Tuy nhiên, điều này cũng đồng nghĩa với việc nguy cơ từ các hacker và cácdạng virus trở thành mối đe dọa đối với an ninh thông tin Vì vậy, việc đảm bảo antoàn thông tin trong các hệ thống máy tính trở nên vô cùng quan trọng
Nhóm chúng em đã nhận thức được điều này và đã xây dựng một chương trình mãhóa và giải mã RSA Với kiến thức đã học cùng với việc nghiên cứu các tài liệutrên Internet, chúng em đã hoàn thành đề tài này Trong quá trình thực hiện, chúng
em đã gặp nhiều khó khăn và nhận thức được rằng hiểu biết của chúng em còn hạnchế, dẫn đến việc kết quả có thể còn một số thiếu sót
Chúng em xin gửi lời cảm ơn chân thành đến cô Trần Phương Nhung vì sự hướngdẫn và chỉ bảo tận tâm của cô Chúng em mong nhận được nhận xét và đóng góp ýkiến từ cô để có thể hoàn thiện bài tập lớn này
Một lần nữa, chúng em xin chân thành cảm ơn!
Trang 3Chương 1: Tổng quan1.1Giới thiệu về an toàn thông tin
An toàn thông tin là bảo vệ các đặc tính riêng tư (confidentialy), toàn vẹn(intergrity) và khả dụng (availabity) của thông tin
- C: (Confidentialy) bảo vệ tính riêng tư của dữ liệu thông qua các cơchế chứng thực và mã hóa, ngăn ngừa những người không hợp lệ sẽ không đượcđọc những thông tin Giống như các bì thư khi phát lương thưởng được dán chữConfidentialy, chúng ta có thể hình dung trong môi trường công nghệ thông tin
là một người chưa đăng nhập vào Domain sẽ không được truy cập những dữ liệuchỉ chia sẻ cho các Domain User
- I: (Intergrity) bảo vệ tính toàn vẹn của dữ liệu thông qua các thuật toánRSA, SHA, MD5 ngăn ngừa attacker thay đổi các thông tin nhạy cảm trongquá trình truyền
- A: (Available) bảo đảm dữ liệu luôn ở trong trạng thái sẵn sằng đápứng nhu cầu của người dùng
- Non-Repudiation: Tính không thể chối bỏ, nghĩa là dữ liệu người nàogửi đi thì họ phải có trách nhiệm với các thông tin của mình thông qua các xácnhận nguồn gốc như chữ kí điện tử
Để thực hiện điều này chúng ta áp dụng các biện pháp xác thực và mã hóa
Và mật mã học là nghiên cứu về vấn đề mã hóa Mã hóa là một tiến trình biếnđổi dữ liệu từ dạng plaintext (văn bản thuần túy dễ dàng nhận biết) thành kết quảciphertext, dạng dữ liệu không thể đọc được nếu không được giải mã bằng cáckhóa thích hợp Mục tiêu của mã hóa là ngăn ngừa việc tấn công đánh cắp dữliệu trái phép hoặc phòng ngừa việc mất mát dữ liệu khi bị tấn công vật lý nhưtrộm đĩa cứng, máy tính xách tay hay thậm chí đột nhập vào hệ thống vẫn khôngthể xem được dữ liệu riêng tư, bí mật đã được bảo vệ bằng các thuật toán mã hóamạnh mẽ
Trang 41.2Giới thiệu về hệ mật mã
1.2.1 Vai trò của hệ mật mã
- Phải che giấu được nội dung của văn bản rõ (plaintext)
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ
thống đến người nhận hợp pháp là xác thực
- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo k có hiện tượng giả mạo, mạo
danh để gửi thông tin lên mạng
1.2.2 Khái niệm cơ bản
- Bản rõ X: được gọi là bản tin gốc, bản rõ có thể được chia nhỏ có kích
thước phù hợp
- Bản mã Y: là bản tin gốc đã được mã hoá
- Mã: là thuật toán mã hoá chuyển bản rõ thành bản mã, thông thường chúng
ta cần thuật toán mã hoá mạnh, cho dù kẻ thù biết được thuật toán, nhưngkhông biết thông tin về khoá thì cũng không tìm được bản rỏ
- Khoá K: là thông tin tham số dùng để mã hoá, chỉ có người gửi và người
nhận biết Khoá là độc lập với bản rõ và có độ dài phù hợp với yêu cầu bảomật
- Mã hoá: là quá trình chuyển bản rõ thành bản mã.
- Giải mã: là quá trình chuyển bản mã thành bản rõ, đây là quá trình ngược
lại của mã hoá
1.2.3 Các thành phần của hệ mật mã
Một hệ mật mã là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn:
P (Plaintext): không gian bản rõ, là tập hợp hữu hạn các bản rõ có thể
C (Ciphertext): không gian bản mã, là tập hợp những bản mã có thể
K (Key): không gian khoá, là tập hợp các khoá có thể
E (Encryption): không gian hàm mã hoá, là tập hợp các quy tắc mã hoá cóthể
Trang 5 D (Decryption): không gian hàm giải mã, là tập hợp các quy tắc giải mã cóthể.
Đối với mỗi k thuộc K có một quy tắc mã hoá ek: P -> C thuộc E và một quytắc giải mã tương ứng dk: C -> P thuộc D
Hình 1.1: Quá trình mã hoá và giải mã thông tin
1.2.4 Phân loại hệ mật mã
- Hệ mật mã đối xứng: hay còn gọi là mật mã khoá bí mật, là những hệ mật dùng chung một khó cả trong quá trình mã hoá và giải mã dữ liệu Do đó khoá phải giữ bí mật tuyệt đối Một số thuật toán nổi tiếng như: DES, Triple DES, RC4, …
- Hệ mật mã bất đối xứng (mật mã khoá công khai): dùng một khoá để mã hoá sau đó dùng một khoá khác để giải mã (2 khoá khác nhau) Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khó nào có thể suy được từ khoá nào Kháo đung để mã hoá có thể công khai, nhưng khoádùng để giải mã phải giữ bí mật Một số thuật toán nổi tiếng như: RSA, RSA,…
Trang 61.1Giới thiệu về hệ mã RSA
1.2.5 Giới thiệu chung về hệ mã RSA
Hệ mã RSA (Rivest-Shamir-Adleman) là một hệ mật mã công khai phổ biến được đặt tên theo tên ba nhà mật mã người Mỹ - Ron Rivest, Adi Shamir và Leonard Adleman Dưới đây là một số thông tin cơ bản về hệ mã RSA:
- RSA là một hệ mật mã công khai, nghĩa là sử dụng hai khóa riêng biệt để mã hóa
và giải mã thông điệp Mỗi người dùng trong hệ thống có một cặp khóa bao gồm khóa công khai (public key) và khóa bí mật (private key)
- Cơ sở của RSA là hai bài toán toán học: phân tích nguyên tố và tính toán modulo lớn Tính an toàn của RSA phụ thuộc vào khả năng phân tích nguyên tố của các số lớn
- So với hệ mã RSA, hệ mã RSA không có nhiều vấn đề về quản lý khóa, vì việc
mã hóa và giải mã đều sử dụng cùng một khóa Tuy nhiên, hệ mã RSA có thể chậmhơn RSA trong việc thực hiện mã hóa và giải mã
1.1.1 Mã hoá và giải mã hệ mã RSA
* Quá trình mã hoá và giải mã
1 Khởi tạo khóa:
- Chọn hai số nguyên tố lớn p và q.
- Tính n = p * q, là tích hai số nguyên tố.
- Tính hàm Euler của n: φ(n) = (p - 1) * (q - 1).n) = (n) = (p - 1) * (q - 1).p - 1) * (n) = (p - 1) * (q - 1).q - 1).
- Chọn một số nguyên b thỏa mãn 1 < b < φ(n) = (p - 1) * (q - 1).n) và gcd(n) = (p - 1) * (q - 1).b, φ(n) = (p - 1) * (q - 1).n)) = 1 Đây
là khóa công khai.
- Tìm số nguyên a sao cho (n) = (p - 1) * (q - 1).a * e) mod φ(n) = (p - 1) * (q - 1).n) = 1 Đây là khóa bí mật.
2 Mã hóa:
- Chọn một thông điệp ban đầu X, trong đó 0 ≤ X < n.
- Mã hóa thông điệp X thành bản mã Y bằng cách sử dụng khóa công khai.
Trang 7thường sử dụng phép toán mũ modulo nhanh như mũ Fermat hay mũ bình phương liên tiếp để tối ưu quá trình giải mã.
Trong hệ mã RSA, thông điệp ban đầu X và bản mã Y đều là các số nguyên không âm có giá trị nhỏ hơn n Cần lưu ý rằng quá trình mã hóa
và giải mã chỉ hoạt động đúng khi X < n, vì nếu X ≥ n, thông điệp ban đầu sẽ không được phục hồi chính xác.
1.2.6 Độ an toàn
Độ an toàn của hệ mã RSA phụ thuộc vào sự khó khăn trong việc giải bài toán phân tích số nguyên tố lớn thành các thừa số nguyên tố Đánh giá độ an toàn của hệ mã RSA như sau:
1 Phân tích số nguyên tố:
- Mã hoá trong hệ mã RSA dựa trên việc chọn hai số nguyên tố lớn p
và q và tính tích n = p * q Độ an toàn của RSA phụ thuộc vào khả năng ngăn chặn việc phân tích n thành p và q Đối với các số nguyên tố lớn, phân tích ngược trở thành một bài toán khó khăn và tốn thời gian.
2 Bài toán logarithm rời rạc:
- Hệ mã RSA không dựa trên bài toán logarithm rời rạc như hệ mã RSA Thay vào đó, nó dựa trên tính khó khăn trong việc giải bài toán phân tích số nguyên tố lớn như đã đề cập ở trên.
3 Độ dài khóa:
- Độ an toàn của RSA cũng liên quan đến độ dài khóa được sử dụng Đối với hệ mã RSA, độ dài khóa càng lớn thì độ an toàn càng cao Việc tìm ra các thừa số nguyên tố p và q từ một số nguyên lớn trở nên khó khăn hơn khi độ dài của p và q tăng lên.
1.2.7 Ưu và nhược điểm của hệ mã RSA
Ưu điểm của hệ mã RSA:
1 Bảo mật mạnh: Độ an toàn của hệ mã RSA phụ thuộc vào sự khó khăn trong việcgiải bài toán phân tích số nguyên tố lớn thành các thừa số nguyên tố Nếu kích thước khóa đủ lớn, việc giải mã RSA trở nên rất khó khăn và tốn thời gian, đảm bảo tính bảo mật của thông tin
2 Hỗ trợ mã hoá và giải mã nhanh: Mặc dù quá trình mã hoá và giải mã RSA sử dụng các phép tính toán phức tạp trên số nguyên lớn, nhưng với các thuật toán hiệu
Trang 8quả như Euclid mở rộng và thuật toán mũ nhanh, RSA vẫn có thể thực hiện mã hoá
và giải mã nhanh chóng
3 Phân phối khóa công khai dễ dàng: Mỗi người dùng có thể tạo cặp khóa (khóa công khai và khóa bí mật) riêng cho mình Khóa công khai có thể được chia sẻ và phân phối một cách công khai mà không làm mất tính bảo mật của thông tin
4 Chữ ký số: RSA cũng được sử dụng để tạo chữ ký số Chữ ký số giúp xác minh tính toàn vẹn của thông tin và xác định nguồn gốc của nó
Nhược điểm của hệ mã RSA:
1 Độ dài khóa lớn: Độ an toàn của hệ mã RSA phụ thuộc vào độ dài khóa Để đảm bảo tính bảo mật, độ dài khóa cần đủ lớn Tuy nhiên, việc sử dụng khóa dài có thể tạo ra sự chậm trễ trong quá trình mã hoá và giải mã
2 Không phù hợp cho mã hoá thông điệp lớn: RSA không phù hợp để mã hoá trực tiếp các thông điệp lớn Thông điệp cần được chia nhỏ thành các khối nhỏ hơn và
mã hoá từng khối riêng biệt Điều này có thể làm tăng độ phức tạp và gây ra hiệu suất chậm
3 Vấn đề quản lý khóa: Vì quy mô khóa lớn và sử dụng số nguyên tố, quá trình sinh khóa và quản lý khóa trong hệ mã RSA có thể phức tạp hơn so với một số hệ
mã khác
4 Độ phức tạp tính toán: Trong quá trình mã hoá vàgiải mã, RSA sử dụng các phéptính toán trên số nguyên lớn, đòi hỏi tính toán phức tạp và tốn thời gian Điều này
có thể làm giảm hiệu suất của quá trình giải mã, đặc biệt đối với thông điệp lớn
5 Cần quản lý khóa bí mật một cách cẩn thận: Khóa bí mật trong hệ mã RSA là rất quan trọng để đảm bảo tính bảo mật của thông tin Do đó, cần có các biện pháp bảomật mạnh mẽ để bảo vệ khóa bí mật khỏi mất mát hoặc truy cập trái phép
6 Cần sử dụng số nguyên tố lớn: Để đảm bảo tính an toàn của hệ mã RSA, cần sử dụng các số nguyên tố lớn Tìm số nguyên tố lớn và thực hiện các phép tính trên số nguyên lớn có thể tốn nhiều thời gian và tài nguyên tính toán
Trang 9Chương 2: Kết quả nghiên cứu2.1Giới thiệu
- Tên đề tài: “Xây dựng chương trình mã hoá và giải mã RSA.”
- Các bước thực hiện triển khai đề tài bao gồm:
o Nghiên cứu nội dung các thuật toán (Kiểm tra số nguyên tố, Euclid Định lý Fermat,hàm số Euler,Thuật toán Miller-Rabin,Định lí phần dưtrung hoa)
o Thiết kế và cài đặt chương trình demo thuật toán
- Hình thức sản phẩm: sản phẩm ứng dụng
- Kết quả đạt được: nghiên cứu, cài đặt đề mô thuật toán
2.2 Nội dung thuật toán
2.2.1 Kiểm tra số nguyên tố
- Bước 1: Kiểm tra xem số đó có nhỏ hơn 2 hay không, nếu phải thì nó không phải là số nguyên tố
- Bước 2: Tìm căn bậc hai của số đó và làm tròn lên đến số nguyên gần nhất Chẳng hạn nếu số đó là 17 thì căn bậc hai của nó là 4.12, lấy số nguyên là 5
- Bước 3: Kiểm tra xem số đó có chia hết cho các số từ 2 đến căn bậc hai của
số đó không Nếu có, thì nó không phải là số nguyên tố
- Bước 4: Nếu không có số nào từ 2 đến căn bậc hai của số đó chia hết cho nó,thì nó là số nguyên tố
Để kiểm tra số 19 có phải là số nguyên tố không, ta áp dụng quá trình kiểm tra như sau:
1 19 > 2, qua bước 1
2 Căn bậc hai của 19 là khoảng 4.36, lấy số nguyên là 4, qua bước 2
3 Kiểm tra xem 19 có chia hết cho các số từ 2 đến 4 không Nếu 19 không chia hết cho số nào, qua bước 3, ngược lại thì 19 không phải là số nguyên tố
Trang 104 Vậy 19 là số nguyên tố, qua bước 4.
2.2.2 Thuật toán euclid tìm ước chung lớn nhất
- Thuật toán Euclid tìm ước chung lớn nhất của hai số nguyên không âm GCD(a, b)
o Nếu a = 0 thì GCD(a, b) = b return b
o Nếu b = 0 thì GCD(a, b) = a return a
o Nếu a # 0, b # 0 Giả sử A > B:
Viết a dưới dạng: a = q * b + r
Theo thuật toán Euclid ta có:
GCD(a, b) = GCD(b, r) = GCD(b, a mod b)
2.2.3 Thuật toán bình phương và nhân tính x^n mod m
- Giải thuật đệ quy: để tính luỹ thừa tự nhiên bậc n của x như sau:
Trang 11Như vậy phép tính x^n được quy về một số phép tính bình phương
và nhân
- Giải thuật không đệ quy:
o Nhận xét: trong giải thuật đệ quy, có xét tính chẵn lẻ của n và liêntục chia n cho 2, lấy phần nguyên đến khi n = 0 Thực chất quá trình này chính là tìm các bit của n hay chính là thực hiện chuyển đổi n sang số nhị phân sau đó tính luỹ thừa theo quy tắc bình phương và nhân
2.2.4 Định lý Ferma nhỏ
- Định lý Fermat được phát biểu như sau: Nếu p là số nguyên tố và a là số
nguyên bất kì khác bội của p (hay GCD (a, p) = 1), ta có: ap-1 ≡ 1(mod p)
Ví dụ: a = 5, p = 3
Ta có: ap-1 mod p = 53-1 mod 3 = 52 mod 3= 25 mod 3 = 1 mod 3=1 (đpcm)
- Một dạng thay thế của định lý Fermat: Nếu p là số nguyên tố, a là một số
nguyên không là bội của p, ta luôn có: ap ≡ a mod p
Ví dụ: a = 3, p = 5
Ta có: ap mod p = 35 mod 5 = 243 mod 5 = 3 mod 5 = 3 (đpcm)
Trang 12Lưu ý: Công thức trên luôn đúng nếu p là số nguyên tố, còn a là số nguyên
2.2.6 Thuật toán Miller-Rabin
Thuật toán Miller-Rabin hoạt động như sau:
Chọn một số nguyên tố ngẫu nhiên và lớn hơn 2, được ký hiệu là "a"
Xác định số "s" và "d" sao cho (2^s * d) = (n - 1), với "n" là số cần kiểm tra tính nguyên tố
Tính toán giá trị "x" = (a^d) mod n
Nếu x bằng 1 hoặc x bằng (n - 1), chuyển đến bước 7
Lặp lại bước 4 với s - 1 lần:
Tính toán giá trị "x" = (x^2) mod n
Trang 13Nếu x bằng 1, trả về "không là số nguyên tố".
Nếu x bằng (n - 1), chuyển đến bước 7
Trả về "không là số nguyên tố"
Lặp lại bước 2 với một số nguyên tố ngẫu nhiên "a" khác
Nếu đã thử đủ số lần (tùy chọn), trả về "có thể là số nguyên tố"
Trả về "không là số nguyên tố"
1.1.1 Định lí phần dư trung hoa
Định lí phần dư Trung Hoa, còn được gọi là Định lí phần dư Trung Quốc (Chinese Remainder Theorem - CRT), là một định lí quan trọng trong lý thuyết số và đại số
Nó cung cấp một phương pháp hiệu quả để giải các hệ phương trình đồng dư
modulo các số nguyên tố cùng nhau
Giả sử chúng ta có một hệ phương trình đồng dư modulo các số nguyên tố cùng nhau Hệ phương trình có dạng như sau:
x ≡ a (mod m )₁ (mod m₁) ₁ (mod m₁)
x ≡ a (mod m )₂ (mod m₂) ₂ (mod m₂)
x ≡ a (mod m )ₙ (mod mₙ) ₙ (mod mₙ)
Trong đó, a , a , , a là các số nguyên và m , m , , m là các số nguyên tố cùng ₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ) ₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ)nhau đôi một (không có ước chung nào giữa chúng)
Định lí phần dư Trung Hoa khẳng định rằng hệ phương trình trên luôn có một nghiệm duy nhất (modulo tích các số nguyên tố) Nghĩa là tồn tại một số nguyên x thỏa mãn tất cả các phương trình đồng dư trên và nó duy nhất trong khoảng từ 0 đến (m * m * * m - 1).₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ)
Công thức để tính giá trị của x được xác định bởi Định lí phần dư Trung Hoa và được gọi là Công thức CRT Công thức này có dạng:
x ≡ (a * M * y + a * M * y + + a * M * y ) mod (m * m * * m )₁ (mod m₁) ₁ (mod m₁) ₁ (mod m₁) ₂ (mod m₂) ₂ (mod m₂) ₂ (mod m₂) ₙ (mod mₙ) ₙ (mod mₙ) ₙ (mod mₙ) ₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ)Trong đó, M , M , , M là các số nguyên tố con còn lại sau khi loại bỏ m khỏi ₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ) ₙ (mod mₙ)tích các số nguyên tố, và y , y , , y là các số nguyên thỏa mãn Mᵢ * yᵢ ≡ 1 (mod ₁ (mod m₁) ₂ (mod m₂) ₙ (mod mₙ)mᵢ)
Định lí phần dư Trung Hoa rất hữu ích trong các ứng dụng liên quan đến mã hóa, tính toán số học, lý thuyết đồ thị, và nhiều lĩnh vực khác Nó cung cấp một cách
Trang 14hiệu quả để giải quyết các vấn đề liên quan đến đồng dư modulo và tối ưu hóa tính toán.
2.2.7 Mã hoá và giải mã hệ mã RSA
Hệ mã RSA được mô tả như sau:
Bước 1: Tạo khóa
Chọn hai số nguyên tố p và q
Tính n = p * q
Chọn số nguyên b sao cho 1 < b < φ(n) và gcd(b, φ(n)) = 1, trong đó φ(n) = (p - 1)
* (q - 1) là hàm số Euler
Tính a sao cho (a * e) mod φ(n) = 1
Khóa công khai: Kpub = (b,n)
Khóa bí mật: Kpri = (a,p,q)
1.1Thiết kế, cài đặt chương trình đề mô thuật toán
Giao diện chương trình đề mô
Trang 15C#
Trang 16Python
Trang 17Javascript
Trang 181.1Cài đặt và triển khai
2.2.8 Chương trình mã hoá và giải mã hệ RSA bằng Java<Hoàng Văn Hiệp>
-Trước tiên chúng ta cài đặt JDK 11 cho máy:
https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
- Cài đặt Apache Netbeans IDE :
B1: truy cập : https://netbeans.apache.org/ để download Apache Netbeans IDE phiên bản cho window
B2: Mở file sau khi đã tải thành công, ấn theo hướng dẫn cài đặt của trình càiđặt
-Giải nén file Nhom5_HoangVanHiep_2020607362.rar
-Sau đó mở phần mềm Apache Netbeans IDE và mở file
Nhom5_HoangVanHiep_2020607362
- Bấm nút Shift +F6 trên bàn phím để chạy chương trình
Trang 19- Nhập dữ liệu (thực hiện bài toán) và kết quả thu được