Chữ ký ElGamal là một hệ thống chữ ký số dựa trên mật mã khóa công khai. Nó được đặt tên theo nhà mật mã học Taher ElGamal. Tài liệu chữ ký ElGamal gồm 200 từ như sau: Chữ ký ElGamal là một thuật toán chữ ký số trong mật mã khóa công khai. Nó sử dụng ma trận số nguyên và phép toán modular để bảo mật thông tin. Trong quá trình tạo chữ ký, người gửi sẽ tạo ra một khóa riêng gồm hai thành phần: khóa bí mật và khóa công khai. Khóa bí mật được sử dụng để ký và giữ bí mật, trong khi khóa công khai được chia sẻ với người nhận để xác minh chữ ký. Người gửi muốn ký một thông điệp bất kỳ sẽ chọn một số ngẫu nhiên, sau đó tính một phép toán modular trên số ngẫu nhiên và khóa công khai. Kết quả này được gửi cùng với thông điệp gốc. Người nhận nhận được cả thông điệp và chữ ký. Người nhận sẽ tính toán một phép toán modular trên chữ ký và khóa công khai. Kết quả sẽ được so sánh với thông điệp gốc để xác minh tính hợp lệ của chữ ký. Chữ ký ElGamal được công nhận vì tính bảo mật mạnh mẽ của nó. Một trong những ưu điểm của chữ ký ElGamal là nó không yêu cầu sự tin tưởng hoàn toàn vào tính bí mật của khóa riêng, nhưng vẫn cho phép xác minh tính hợp lệ của chữ ký bằng cách sử dụng khóa công khai. Tuy nhiên, nhược điểm của chữ ký ElGamal là quá trình tính toán phức tạp và kích thước của chữ ký lớn hơn so với các thuật toán khác như RSA.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -🙞🙜🕮🙞🙜 - BÀI TẬP LỚN Mơn: An tồn bảo mật thơng tin ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH MÃ HĨA VÀ GIẢI MÃ ELGAMAL Giáo viên: Ths Trần Phương Nhung Lớp: 20222IT6001003 Nhóm: Nhóm Nguyễn Chí Nghĩa - 2020605645 Thành viên: Nguyễn Minh Quân – 2021605550 Đinh Anh Quân - 2020600391 Hà Nội, Năm 2023 LỜI CẢM ƠN Ngay từ thuở sơ khai lịch sử, vấn đề bảo mật mã hóa thông tin tồn nghiên cứu suốt chiều dài văn minh nhân loại Từ xa xưa, trước tồn khái niệm máy tính sơ khai nhất, người sáng tao hệ mật mã cổ điển với bút giấy, chí hỗ trợ từ dụng cụ khí đơn giản Vào đầu kỷ 20, xuất cấu khí điện cơ, chẳng hạn máy Enigma, cung cấp chế phức tạp hiệu cho việc mật mã hóa Sự đời phát triển mạnh mẽ ngành điện tử máy tính, vai trò ngày quan trọng chúng đời sống văn minh làm bùng nổ tầm quan trọng việc bảo mật mã hóa thơng tin, nhờ tạo điều kiện để mật mã học có bước nhảy vọt lớn Nhờ trợ giúp máy tính, nhiều hệ mật mã đại đời dựa sở đại số Modulo thuật toán logarit rời rạc, hệ mật mã có tính bảo mật cao vượt trội Một số hệ mật mã đại phổ biến sử dụng ngày hôm hệ mã hóa Elgamal Dựa hướng dẫn giảng viên - ThS Trần Phương Nhung, thành viên nhóm tiến hành tìm hiểu thuật tốn mã hóa giải mã Elgamal Bên cạnh nhóm chúng em tiến hành xây dựng chương trình demo hệ mã hóa Elgamal nhiều ngơn ngữ khác Trong suốt q trình hồn thiện tập lớn, nhóm chúng em cố gắng nhiên khơng thể tránh khỏi sai sót nên chúng em mong nhận góp ý từ phía để tập lớn nhóm hồn thiện Chúng em xin chân thành cảm ơn! MỤC LỤC LỜI CẢM ƠN .2 CHƯƠNG : TỔNG QUAN VỀ ĐỀ TÀI Giới thiệu hệ mật mã: Khóa: .6 2.1 Độ dài khóa : .6 2.2 Quản lý khóa cơng khai : 2.3 Chứng nhận khóa cơng khai : .7 2.4 Quản lý khóa phân phối: .7 Các hệ mật mã: .8 Hệ mật mã công khai: Thám mã: Giới thiệu chung hệ mật mã Elgamal: 11 Ưu nhược điểm hệ mật mã Elgamal: 11 7.1 Ưu Điểm : 11 7.2 Nhược điểm: .11 Tính an tồn bảo mật hệ mật mã Elgamal: 11 CHƯƠNG : KẾT QUẢ NGHIÊN CỨU 12 Giới thiệu: 12 Kết đạt được: Nghiên cứu, Cài đặt demo thuật toán Nội dung thuật toán: .12 Thiết kế, cài đặt chương trình đề mơ thuật tốn: 13 3.1 Giao diện chương trình DEMO ngơn ngữ Java: .13 3.2 Giao diện chương trình DEMO ngơn ngữ Javascript: 13 3.3 Giao diện chương trình DEMO ngơn ngữ PHP: .13 3.4 Giao diện chương trình DEMO ngơn ngữ C# : .14 Cài đặt triển khai: 14 4.1 Giới thiệu công cụ: 14 4.1.1 Apache Netbean: 14 4.1.2 Visual Studio: .15 4.2 Hướng dẫn cài đặt chạy chương trình: .16 4.2.1 Hướng dẫn cài đặt 16 4.2.2 Ngôn nhữ Java (Đinh Anh Quân): .20 4.2.3 Ngôn ngữ Javascript (Nguyễn Minh Quân): 24 4.2.4 Ngơn ngữ C# (Nguyễn Chí Nghĩa): .28 CHƯƠNG : KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM .34 Nội dung thực hiện: .34 1.1 Các kiến thức học được: .34 1.2 Các kỹ học được: .34 1.3 Những học kinh nghiệm rút suốt trình: 35 Phương hướng phát triển: 35 2.1 Tính khả thi chủ đề: 35 2.2 Những thuận lợi khó khăn: 36 2.3 Hướng phát triển mở rộng đề tài: 37 TÀI LIỆU THAM KHẢO……………………………………………39 CHƯƠNG : TỔNG QUAN VỀ ĐỀ TÀI Giới thiệu hệ mật mã: Để đảm bảo việc truyền tin an tồn kiểm tra tính tồn vẹn thơng tin, người ta thường mã hóa thông tin trước truyền số hệ mật DES, Triple DES (3DES), RC4, AES, RSA, Rabin, Diffle-Hellman, Elgamal, Một hệ thống mật mã hệ bao gồm thành phần (P, C, K, E, D) thỏa mãn tính chất: ● P (Plaintext) tập hợp hữu hạn rõ (hay cịn gọi khơng gian rõ) ● C (Ciphertext) tập hợp hữu hạn mã (hay cịn gọi khơng gian mã) ● K (Key) tập hợp khóa (hay cịn gọi khơng gian khóa) ● E (Encryption) tập hợp quy tắc mã hóa (hay cịn gọi khơng gian hàm mã hóa) ● D (Decryption) tập hợp quy tắc giải mã (hay cịn gọi khơng gian hàm giải mã) Q trình mã hóa tiến hành cách áp dụng hàm tóan học E lên thông tin P để trở thành thông tin mã hóa C Q trình giải mã tiến hành ngược lại: áp dụng hàm D lên thông tin C để thơng tin giải mã Hình Q trình mã hóa giải mã Khóa: 2.1 Độ dài khóa : Độ an tồn thuật tốn mã hố cổ điển phụ thuộc vào hai điều độ dài thuật toán độ dài khoá Nhưng độ dài khoá dễ bị lộ Giả sử độ dài thuật toán lý tưởng, khó khăn lớn lao đạt thực hành Hồn tồn có nghĩa khơng có cách bẻ gãy hệ thống mã hoá trừ cố gắng thử với khoá Nếu khoá dài bits có = 256 khố Nếu khố dài 56 bits, có 256 khố Giả sử siêu máy tính thực triệu phép tính giây, cần tới 2000 năm để tìm khố thích hợp Nếu khố dài 64 bits, với máy tính tương tự cần tới xấp xỉ 600,000 năm để tìm khố số 64 khố Nếu khố dài 128 bits, cần tới 10 25 năm, vũ trụ tồn cỡ 10 10 năm Như với 1025 năm đủ dài Trước bạn gửi phát minh hệ mã hoá với Kbyte độ dài khoá, bạn nên nhớ nửa khác không phần quan trọng thuật tốn phải an tồn nghĩa khơng có cách bẻ gãy trừ tìm khóa thích hợp Điều khơng dễ dàng nhìn thấy được, hệ thống mã hố nghệ thuật huyền ảo Một điểm quan trọng khác độ an tồn hệ thống mã hố nên phụ thuộc vào khố, khơng nên phụ thuộc vào chi tiết thuật toán Nếu độ dài hệ thống mã hố tin thực tế kẻ cơng khơng thể biết nội dung bên thuật tốn Nếu bạn tin giữ bí mật nội dung thuật tốn, tận dụng độ an tồn hệ thống phân tích lý thuyết sở hữu chung bạn nhầm Và thật ngây thơ nghĩ khơng thể gỡ tung mã nguồn bạn đảo ngược lại thuật toán Giả sử vài kẻ thám mã biết hết tất chi tiết thuật toán bạn Giả sử họ có nhiều mã, họ mong muốn Giả sử họ có khối lượng rõ công với nhiều liệu cần thiết Thậm chí giả sử họ lựa chọn rõ công Nếu hệ thống mã hố dư thừa độ an tồn tất mặt, bạn có đủ độ an tồn bạn cần 2.2 Quản lý khóa cơng khai : Trong thực tế, quản lý khóa vấn đề khó an tồn hệ mã hóa Để thực thiết kế an tồn thuật tốn mã hóa việc dễ dàng để tạo lưu trữ khóa bí mật điều khó Kẻ thám mã thường cơng hai hệ mã hóa đối xứng cơng khai qua hệ quản lý khóa chúng Đối với hệ mã hóa cơng khai việc quản lý khóa dễ hệ mã hóa đối xứng, có vấn đề riêng người có khóa cơng khai, số người mạng 2.3 Chứng nhận khóa cơng khai : Chứng nhận khố cơng khai xác định khố thuộc đó, quản lý người đáng tin cậy Chứng nhận để sử dụng vào việc cản trở cố gắng thay khoá khố khác Nó lưu trữ thơng tin Bob tên, địa viết mà Eva tin tưởng, người thường gọi CA (certifying authority) Bằng cách xác nhận khoá thông tin Bob CA xác nhận thông tin Bob khố cơng khai thuộc quyền sở hữu Bob Eva kiểm tra lại dấu hiệu sau sử dụng khố cơng khai, an tồn cho Bob khơng khác biết 2.4 Quản lý khóa phân phối: Trong vài trường hợp, trung tâm quản lý khố khơng làm việc Có lẽ khơng có CA (certifying authority) mà Eva Bob tin tưởng Có lẽ họ tin tưởng bạn bè thân thiết họ khơng tin tưởng Quản lý khố phân phối, sử dụng chương trình miền công khai, giải vấn đề với người giới thiệu (introducers) Người giới thiệu người dùng khác hệ thống người nhận khố cơng khai bạn Các hệ mật mã: Hệ mật mã gồm loại: ● Hệ mật mã đối xứng (hay gọi hệ mật mã khóa bí mật): hệ mật dùng chung khóa q trình mã hóa giải mã thơng tin Do khóa phải giữ bí mật tuyệt đối Một sổ thuật tốn tiếng mã hóa đối xứng là: DES, Triple DES(3DES), RC4, AES, ● Hệ mật mã bất đối xứng (hay cịn gọi mật mã khóa cơng khai): Các hệ mật dùng khóa để mã hóa sau dùng khóa khác để giải mã, nghĩa khóa để mã hóa khóa để giải mã khác Các khóa tạo nên cặp chuyển đổi ngược khơng có khóa suy khóa cịn lại Khóa dùng để mã hóa cơng khai khóa dùng để giải mã giữ bí mật Do thuật tốn có hai loại khóa: khóa dùng để mã hóa gọi khóa cơng khai-Public Key cịn khóa để giải mã gọi khóa bí mật Private Key Một số thuật tốn mã hóa cơng khai tiếng: DiffleHellman, Elgamal, RSA, Rabin Hệ mật mã công khai: Hệ mật mã công khai bước tiến lớn ngành mật mã Hệ mật mã đời phá bỏ tư cũ mật mã, đồng thời có nhiều ứng dụng to lớn như: phân phối khóa, chữ ký số v.v Mặc dù giải điểm yếu logic hệ mật mã khóa đối xứng hệ mật mã khóa cơng khai (bất đối xứng) đồng thời biến điểm mạnh hệ mật mã khóa bí mật thành điểm yếu Hệ khóa cơng khai tính tốn chậm liên tục xử lý số lớn (ở RSA tính tốn với số ngun tố lớn) Để đảm bảo tính an tồn hệ mật mã RSA Một quy luật tự nhiên yếu đâu ta khắc phục Để giảm thời gian tính tốn hệ mật mã khóa cơng khai, ta cố gắng thực Giảm độ dài khóa đồng thời giữ tính an tồn hệ mật mã Đây xu mật mã học Xuất phát từ mong muốn tìm hiểu, tạo nên chương trình demo mã hóa giải mã thơng tin lợi ích mà việc mã hóa mang lại với yêu cầu tập lớn mơn an tồn bảo mật thơng tin nên nhóm 14 chúng em lựa chọn tìm hiểu hệ mã hóa cơng khai (hệ mật mã bất đối xứng) RSA với mục đích hiểu rõ phương pháp, cách thức thực mã hóa, giải mã thuật tốn dùng để mã hóa giải mã thơng tin Qua ta thấy tầm quan trọng hệ mã hóa cơng khai RSA việc truyền tin an tồn kiểm tra tính tồn vẹn thơng tin Thám mã: Mục tiêu thám mã (phá mã) tìm điểm yếu khơng an tồn phương thức mật mã hóa Thám mã thực kẻ công ác ý, nhằm làm hỏng hệ thống; người thiết kế hệ thống với ý định đánh giá độ an tồn hệ thống Có nhiều loại hình cơng thám mã, chúng phân loại theo nhiều cách khác Một đặc điểm liên quan người cơng biết làm để hiểu thơng tin bí mật Ví dụ, người thám mã truy cập mã hay không? Hay có biết hay đốn phần rõ? Hoặc chí: Anh ta có chọn lựa rõ ngẫu nhiên để mật mã hóa? Các kịch tương ứng với công mã, công biết rõ công chọn lựa rõ Trong công việc thám mã túy sử dụng điểm yếu thuật tốn mật mã hóa, cơng khác lại dựa thi hành, biết đến công kênh bên Nếu người thám mã biết lượng thời gian mà thuật toán cần để mã hóa lượng rõ đó, sử dụng phương thức cơng thời gian để phá mật mã Người cơng nghiên cứu mẫu độ dài thông điệp để rút thơng tin hữu ích cho việc phá mã; điều biết đến thám mã lưu thông Nếu hệ thống mật mã sử dụng khóa xuất phát từ mật khẩu, chúng có nguy bị cơng kiểu duyệt tồn (brute force), kích thước khơng đủ lớn thiếu tính ngẫu nhiên mật Đây điểm yếu chung hệ thống mật mã Đối với ứng dụng mạng, giao thức thỏa thuận khóa chứng thực mật giảm số giới hạn mật Đối với ứng dụng độc lập, biện pháp an toàn để lưu trữ liệu chứa mật và/hoặc cụm từ kiểm sốt truy cập thơng thường gợi ý nên sử dụng Thám mã tuyến tính Thám mã vi phân phương pháp chung cho mật mã hóa khóa đối xứng Khi mật mã hóa dựa vào vấn đề tốn học độ khó NP, giống trường hợp thuật tốn khóa bất đối xứng, thuật tốn phân tích thừa số nguyên tố trở thành công cụ tiềm cho thám mã Có phương pháp chung để phân tích cơng (Chỉ có mã; Biết rõ; Lựa chọn rõ; Mô lựa chọn rõ; Lựa chọn mã; Lựa chọn khóa) Mỗi phương pháp số chúng giả sử kẻ thám mã hoàn toàn có hiểu biết thuật tốn mã hố sử dụng 10 Giới thiệu chung hệ mật mã Elgamal: Hệ elgamal hệ mật mã công khai Hệ elgamal dựa tốn logarit rời rạc Tính an tồn tùy thuộc vào độ phức tạp toán logarit Hệ Elgamal biến thể sơ đồ phân phối khóa Diffie – Hellman, Tiến sĩ Taher Elgamal đưa năm 1985 So với RSA, hệ Elgamal khơng có nhiều rắc rối vấn đề quyền sử dụng Ưu nhược điểm hệ mật mã Elgamal: 7.1 Ưu Điểm : Độ phức tạp toán logirit lớn nên độ an toàn cao Bản mã phụ thuộc vào rõ x giá trị ngẫu nhiên nên từ tõ ta có nhiều mã khác 7.2 Nhược điểm: Tốc độ chậm (do phải xử lý số nguyên lớn) Dung lượng nhớ dành cho việc lưu trữ khóa lớn Tính an toàn bảo mật hệ mật mã Elgamal: Giả sử C có mã, để giải mã C phải đối mặt với tốn sau: 11 C phải tìm số a cho h ≡ g a (mod p) để dùng phương pháp giải mã B làm; Hoặc C phải tìm số b cho y1 ≡ g b (mod p) để tính trực tiếp hb và từ tìm r Cả hai cách tiếp cận nói địi hỏi C phải giải toán logarithm rời rạc, tốn khó, ElGamal hệ mã khóa tương đối an toàn CHƯƠNG : KẾT QUẢ NGHIÊN CỨU Giới thiệu: Tên đề tài nghiên cứu: Xây dựng chương trình mã hóa giải mã Elgamal Các bước thực triển khai đề tài bao gồm: Nghiên cứu nội dung thuật toán Thiết kế cài đặt chương trình demo thuật tốn Hình thức sản phẩm: Sản phẩm ứng dụng Kết đạt được: Nghiên cứu, Cài đặt demo thuật toán Nội dung thuật tốn: Bước 1: Tạo khóa Cho p số nguyên tố cho toán logarit rời rạc Z p khó giải Chọn phần tử nguyên thủy α ∈ Zp* Chọn a ∈ {2, 3…, p-2} khóa bí mật thứ (Khóa người nhận, giải mã) Tính β = αa mod p Khi đó: Kpub = (p, α, β) gọi khóa cơng khai, Kpri = (a) khóa bí mật 12 Bước 2: Xây dựng hàm mã hóa liệu Chọn số ngẫu nhiên bí mật k ∈ Zp-1, Ta xác định: k ∈ Zp-1 = {0, 1…, p-2} Định nghĩa: 𝑒𝐾𝑝(𝑥, 𝑘) = (𝑦1, 𝑦2) với 𝑦1 = 𝛼𝑘 𝑚𝑜𝑑 𝑝 𝑦2 = 𝑥𝛽𝑘 𝑚𝑜𝑑 𝑝 Bước 3: Giải mã Với y1, y2 ∈ Zp* ta xác định: 𝑑𝐾𝑝(𝑦1 , 𝑦2) = 𝑦2(𝑦1𝑎 ) −1 𝑚𝑜𝑑 p A (gửi) B (nhận) Choose private key KpriA=αA Compute KpubA=αaA mod p = bA kAB = bBaA = αaA*aB mod p Choose private key KpriB=αB KpubB= αaB mod p = bB bB bA kAB = bAaB = αaB*aA mod p y = x*kAB mod p A==>y x = y*kAB-1 mod p Thiết kế, cài đặt chương trình đề mơ thuật tốn: 3.1 Giao diện chương trình DEMO ngơn ngữ Java: 13 Hình 1: Giao diện DEMO ngơn ngữ Java 3.2 Giao diện chương trình DEMO ngơn ngữ Javascript: Hình 2: Giao diện DEMO ngơn ngữ JavaScript 3.3 Giao diện chương trình DEMO ngơn ngữ C#: 14 Hình 3: Giao diện DEMO ngôn ngữ C# Cài đặt triển khai: 4.1 Giới thiệu công cụ: 4.1.1 Apache Netbean: NetBean mơi trường phát triển tích hợp (IDE) cho Java NetBean cho phép ứng dụng phát triển từ tập hợp thành phần phần mềm gọi modules Eclipse chạy Windows, macOS, Linux Solaris Giao diện dễ sử dụng vời người lập trình Có đầy đủ thư viện ngôn ngữ Java giúp người lập trình sử dụng API cách dễ dàng Ngồi NetBean cịn hỗ trợ người lập trình dễ dàng thiết kế giao diện với thư viện Java application Ưu điểm công cụ NetBean o Nền tảng đa: chạy Windows Linux điều hành o Không bị hạn chế nhà cung cấp công cụ, bao gồm tất nhà cung cấp phần mềm độc lập (ISV) o Hỗ trợ sử dụng nhiều cơng cụ lập trình o Tạo lợi ích cho tích hợp mạch cơng cụ bên xuyên qua nhiều loại nội dung nhà cung cấp công cụ khác o Hỗ trợ công cụ thao tác lập trình ngơn ngữ như: HTML , Java, C, … o GUI môi trường hỗ trợ phát triển không dựa GUI o Tính biến phổ ngơn ngữ Java (ngôn ngữ sử dụng để viết công cụ) o Tải nhanh sử dụng SWT / Jface Nhược điểm công cụ NetBean o Cài đặt phức tạp, phần cứng máy nhớ o Nhiều plugin đến quán tính thiếu 15 4.1.2 Visual Studio: Microsoft Visual Studio là một mơi trường tích hợp (IDE) từ Microsoft Microsoft Visual Studio cịn gọi "Trình soạn thảo mã nhiều người sử dụng giới ", dùng để lập trình C++ và C# là Nó sử dụng để phát triển chương trình máy tính cho Microsoft Windows, trang web, ứng dụng web các dịch vụ web Từ đời đến nay, Visual Studio có nhiều phiên sử dụng khác Điều đó, giúp cho người dùng lựa chọn phiên tương thích với dịng máy cấu hình sử dụng phù hợp Những điểm mạnh Visual Studio: Visual Studio hỗ trợ lập trình nhiều ngôn ngữ như: C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript Là công cụ hỗ trợ việc Debug cách dễ dàng mạnh mẽ như: Break Point, xem giá trị biến trình chạy, hỗ trợ debug câu lệnh Giao diện Visual Studio dễ sử dụng người bắt đầu lập trình Visual Studio hỗ trợ phát triển ứng dụng: desktop MFC, Windows Form, Universal App, ứng dụng mobile Windows Phone 8/8.1, Windows 10… Visual Studio hỗ trợ xây dựng ứng dụng cách chuyên nghiệp công cụ kéo thả Visual Studio đông đảo lập trình viên giới sử dụng 4.2 Hướng dẫn cài đặt chạy chương trình: 4.2.1 Hướng dẫn cài đặt 4.2.1.1 Java (Apache Netbean) Trước tiên cài đặt môi trường java cho máy Link:https://www.oracle.com/java/technologies/downloads/#jdk19windows/ 16 Cài đặt môi trường theo hướng dẫn trình cài đặt Cài đặt NetBean: B1: truy cập https://www.apache.org/dyn/closer.cgi/netbeans/netbeansinstallers/16/Apache-NetBeans-16-bin-windows-x64.exe/ để download netbean phiên cho window B2: Mở file sau tải thành công B3: Ấn theo hướng dẫn cài đặt trình cài đặt B4: trình cài đặt hiển thị cài đặt thành cơng 4.2.1.2 Visual Studio(Javascript) Để cài đặt Visual Studio Code Windows macOS bạn truy cập vào trang tải Visual Studio Code chọn phiên phù hợp với hệ điều hành Sau nhấp đúp vào tập tải tiến hành cài đặt phần mềm thông thường khác Khi cài đặt xong bạn khởi động Visual Studio Code cách tìm kiếm chương trình LaunchPad (với hệ điều hành macOS) menu Start (đối với Windows) nhấp vào biểu tượng chương trình 17 Cài Extension Live Sever để chạy chương trình trình duyệt web: 4.2.1.3 Visual Studio B1: Download cài Visual Studio B2 Tiến hành cài đặt Sau download cài, bạn mở lên chờ lúc để cài tự giải nén, giải nén xong bạn có giao diện hình 18 Vì cài đặt Visual Studio 2019 Community nên khơng Đối với bạn chưa cài đặt bạn tìm tới Visual Studio 2019 Community ấn vào Install B3: Cài đặt gói hỗ trợ C# Để sử dụng C# Visual Studio bạn cần phải cài đặt thêm gói hỗ trợ NET Visual Studio gói hỗ trợ bao gồm ngơn ngữ khác C# F# quan tâm tới C# suốt khóa học Đối với gói hỗ trợ này, bạn viết ứng dụng Desktop, Web, Console … ngơn ngữ lập trình C# 19 Bạn tích vào NET desktop development sau chọn Install hình B4: Kết thúc trình cài đặt Sau trình cài đặt diễn hồn tất, cài tự động mở Visual Studio cho bạn chuẩn bị cho lần thử Ở bước bạn làm theo mà họ bảo 20