Bảo mật thư điện tử
Trang 1LỜI NÓI ĐẦU vi
CHƯƠNG I: GIỚI THIỆU VỀ TRUNG TÂM ỨNG CỨU KHẨN CẤP MÁY TÍNH VIỆT NAM – CHI NHÁNH ĐÀ NẴNG (GỌI TẮT LÀ VNCERT) 1
1.1 Giới thiệu về trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) 1
1.1.1 Quá trình hình thành và phát triển của VNCERT 1
1.1.2 Cơ cấu tổ chức 1
1.1.3 Nhiệm vụ, chức năng chính và định hướng phát triển của trung tâm 2
1.1.4 Giới thiệu về chi nhánh tại Đà Nẵng 2
1.1.4.1 Cơ cấu nhân sự 3
1.1.4.2 Giới thiệu công việc, các dự án mà chi nhánh đã và đang thực hiện 3
1.2 Giới thiệu đề tài 4
2.2.3 Mã hóa khóa công cộng 9
2.3 Một số thuật toán trong chương trình ứng dụng 11
2.3.1 Thuật toán mã hóa RSA 11
2.3.2 Thuật toán mã hóa El Gamal 15
2.4 Chương trình ứng dụng GnuPG 16
2.4.1 Cài đặt GnuPG 16
2.4.2 Tạo khóa mới 20
2.4.3 Upload Public Key lên Server 24
2.4.4 Download khóa công cộng của người khác 24
2.4.5 Tạo bộ lọc tự động mã hóa 25
2.4.6 Gửi và nhận email 28
CHƯƠNG III: KẾT LUẬN VÀ KIẾN NGHỊ 30
3.1 Kết luận chung về kết quả đạt được 30
3.2 Mức độ hoàn thành đề tài so với kế hoạch 30
Trang 23.3 Kiến nghị 30
3.3.1 Đối với trung tâm 30
3.3.2 Đối với nhà trường 30
TÀI LIỆU THAM KHẢO i
PHIẾU ĐÁNH GIÁ ii
Ý KIẾN ĐÁNH GIÁ CỦA GIẢNG VIÊN iv
Trang 3DANH MỤC HÌNH VẼ
Hình 1.1 : Cơ cấu tổ chức Trung tâm ứng cứu khẩn cấp máy tính Việt Nam 2
Hình 1.2: Cơ cấu tổ chức tại chi nhánh Đà Nẵng 3
Hình 2.1: Mô hình mã hóa thông tin 7
Hình 2.2: Quá trình truyền tin sử dụng mã khóa bí mật 8
Hình 2.3: Quá trình truyền tin sử dụng mã hóa công cộng 10
Hình 3.1: Giao diện cài đặt GnuPG 17
Hình 3.2: Giao diện cài đặt GnuPG 17
Hình 3.3: Giao diện cài đặt Enigmail 18
Hình 3.4: Giao diện cài đặt Enigmail 18
Hình 3.5: Giao diện cài đặt Enigmail 19
Hình 3.6: Giao diện khởi động Enigmail 19
Hình 3.7: Giao diện tạo khóa mới 20
Hình 3.8: Giao diện tạo khóa mới 20
Hình 3.9: Giao diện tạo khóa mới 21
Hình 3.10: Giao diện chứng thực việc tạo khóa mới 21
Hình 3.11: Giao diện lưu chứng thực tạo khóa mới 22
Hình 3.12: Giao diện khóa mới được tạo 22
Hình 3.13: Giao diện lưu khóa mới được tạo 23
Hình 3.14: Giao diện lưu khóa mới được tạo 23
Hình 3.15: Giao diện thông báo lưu khóa mới thành công 23
Hình 3.16: Giao diện Upload Upload Public Keys lên Server 24
Hình 3.17: Giao diện chọn Server để Upload 24
Hình 3.18: Giao diện Download Public Keys của người khác 24
Hình 3.19: Giao diện Download Public Keys của người khác 25
Hình 3.20: Giao diện tạo bộ lọc tự động mã hóa 25
Hình 3.21: Giao diện tạo bộ lọc tự động mã hóa 26
Hình 3.22: Giao diện tạo bộ lọc tự động mã hóa 26
Hình 3.23: Giao diện tạo bộ lọc tự động mã hóa 27
Hình 3.24: Giao diện tạo bộ lọc tự động mã hóa 27
Hình 3.25: Giao diện xác nhận ký và mã hóa thông tin 28
Hình 3.26: Giao diện gửi mail 28
Hình 3.27: Giao diện nhận email khi không có khóa riêng 29
Hình 3.28: Giao diện nhận mail khi có khóa riêng 29
Trang 4DANH MỤC CHỮ VIẾT TẮTChữ viết tắt Ý nghĩa
POP3 Post Office Protocol: Giao thức bưu điện phiên bản 3
khẩn cấp Máy tính Việt Nam
Trang 5LỜI CẢM ƠN
Kỳ thực tâp tốt nghiệp là một khoảng thời gian để cho sinh viên bắt đầu làm quenvới tác phong làm việc ở môi trường thực tế Đối với sinh viên, đây là một giai đoạnchuyển giao giữa những kiến thức được đào tạo tại nhà trường và thực tế ngoài doanhnghiệp, để có thể áp dụng những gì đã học và tìm kiếm cho mình một công việc phùhợp với năng lực Còn đối với các doanh nghiệp, đây có thể được xem là giai đoạn màcác doanh nghiệp có nhu cầu tuyển chọn nhân sự cho công ty trong tương lai có thểxem xét, đánh giá, và tuyển chọn những sinh viên phù hợp với nhu cầu phát triển củacông ty
Qua quá tìm tìm hiểu cùng với sự giới thiệu của nhà trường Trường cao đẳngCông nghệ thông tin hữu nghị Việt – Hàn, em đã được nhận vào thực tập tại Trungtâm ứng cứu khẩn cấp máy tính Việt Nam chi nhánh Đà Nẵng trong khoảng thời
gian từ ngày 19/04/2010 đến ngày 22/05/2010, với đề tài:
“Bảo mật thư điện tử”
Trong khoảng thời gian thực tập tại trung tâm, em đã có cơ hội được tiếp xúc vớimôi trường làm việc trong thực tế, bổ sung thêm các kiến thức khi học trên trường,được gặp gỡ và học hỏi kinh nghiệm quản lý, làm việc của các cán bộ quản lý, cácnhân viên trong trung tâm, đã phần nào giúp em có được kinh nghiệm làm việc chobản thân sau này
Em xin chân thành cảm ơn các anh chị và các bạn tại Trung tâm ứng cứu khẩncấp máy tính Việt Nam chi nhánh Đà Nẵng đã tận tình giúp đỡ, chỉ dẫn em trong
suốt quá trình thực tập tại trung tâm, đồng thời em xin gửi lời cảm ơn đến cô NguyễnNgọc Huyền Trân – Giảng viên hướng dẫn thực tập cùng các thầy cô trong trường đãquan tâm, hướng dẫn em giúp em hoàn thành tốt đợt thực tập này.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 19/05/2010Sinh viên thực hiện
Trần Thùy Dung
Trang 6LỜI NÓI ĐẦU
Ngày nay, mạng Internet đã trở thành nền tảng chính cho sự trao đổi thông tin trêntoàn cầu Có thể thấy một cách rõ ràng là Internet đã và đang tác động lên nhiều mặtcủa đời sống chúng ta từ việc tìm kiếm thông tin, trao đổi dữ liệu đến việc hoạt độngthương mại, học tập nghiên cứu và làm việc trực tuyến Nhờ Internet mà việc trao đổithông tin cũng ngày càng tiện lợi, nhanh chóng hơn, khái niệm thư điện tử (email) cũngkhông còn mấy xa lạ với mọi người.
Là một dịch vụ phổ biến nhất trên Internet, thư điện tử giúp mọi người sử dụng máytính kết nối Internet đều có thể trao đổi thông tin với nhau Ngoài ra, email cũng là mộthình thức đặc trưng nhất trong năm hình thức giao dịch của thương mại điện tử Vớithương mại điện tử, email được dùng như là một công cụ thông dụng nhất để giao tiếpvới đối tác kinh doanh, với khách hàng, thu thập thông tin khách hàng, có những chiếnlược quảng cáo, giới thiệu sản phẩm, những dịch vụ hữu ích một cách nhanh nhất.Người ta cũng có thể trao đổi thông tin đặt đơn mua hàng, những thông tin cần thiếttrước một giao ước Tóm lại mọi giao dịch, trao đổi đều có thể thông qua thư điện tử.
Tuy nhiên trên môi trường truyền thông này, ngoài mặt tích cực Internet cũng tiềmẩn những tiêu cực của nó đối với vấn đề bảo vệ thông tin
Do đó, những yêu cầu được đặt ra đối với việc trao đổi thông tin trên mạng: Bảo mật tuyệt đối thông tin trong giao dịch
Đảm bảo tính toàn vẹn của thông tin.
Chứng thực được tính đúng đắn về pháp lí của thực thể tham gia trao đổi thôngtin.
Đảm bảo thực thể không thể phủ nhận hay chối bỏ trách nhiệm của họ về nhữnghoạt động giao dịch trên Internet.
Từ thực tế đó cần có phương pháp bảo mật thông tin nhằm cải thiện an toàn trênInternet Việc tìm ra giải pháp bảo mật dữ liệu, cũng như việc chứng nhận quyền sở hữucủa cá nhân là một vấn đề luôn luôn mới Bảo mật phải được nghiên cứu và cải tiến đểtheo kịp sự phát triển không ngừng của cuộc sống.
Làm sao để bảo mật dữ liệu?
Làm sao để tin tức truyền đi không bị mất mát hay bị đánh tráo?
Trang 7 Làm sao để người nhận biết được thông tin mà họ nhận được có chính xác haykhông? Thông tin đã bị thay đổi gì chưa?
Làm sao để biết được thông tin này do ai gửi đến? Thuộc quyền sở hữu của ai? Những câu hỏi được đặt ra là một thách thức rất lớn đối với những người nghiêncứu về bảo mật Có rất nhiều cách thức để bảo vệ thông tin trên đường truyền, nhiềugiải pháp được đề xuất như: sử dụng mật khẩu (password), mã hóa dữ liệu,… Cùng vớisự phát triển của các biện pháp bảo mật ngày càng phức tạp, thì các hình thức tấn côngngày càng tinh vi hơn Do đó vấn đề là làm sao đưa ra một giải pháp thích hợp và cóhiệu quả theo thời gian và sự phát triển mạnh mẽ của khoa học kỹ thuật
Xuất phát từ vấn đề trên, cùng với thực tế trao đổi những thông tin nội bộ trongtrung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT), trung tâm đã sử dụngmột chương trình để có thể đảm bảo tính bảo mật của thông tin dựa trên ứng dụng củacác phương pháp mã hóa thông tin và chữ ký điện tử Với cơ hội được tiếp xúc, thực
tập tại trung tâm, em đã nghiên cứu đề tài “Bảo mật thư điện tử” để hiểu rõ ràng hơn
mục đích chương trình được xây dựng là giúp đỡ người dùng có thể soạn thảo, gửi,nhận, đọc, xóa hay lưu giữ thư một cách dễ dàng, nhanh chóng nhưng vẫn đảm bảotính an toàn cho những thông tin quan trọng cần có tính bảo mật Với những thư khôngcần bảo mật thì người dùng có thể chọn cách gửi đi bình thường, còn muốn bảo mật thìcó thể chọn phương pháp mã hoá trước khi gửi đi
Mặc dù đã cố gắng trong quá trình tìm hiểu và thực hiện đề tài, nhưng với khoảngthời gian thực tập có hạn, lượng kiến thức là vô hạn nên không thể tránh được nhữngthiếu sót Em rất mong nhận được quan tâm đóng góp của quý thầy cô, các anh chị vàcác bạn để báo cáo hoàn thiện hơn nữa.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 19/05/2010Sinh viên thực hiện
Trần Thùy Dung
Trang 10- Thúc đẩy hình thành hệ thống các Trung tâm Ứng cứu khẩn cấp Máy tính(CERT) trong các cơ quan, tổ chức, doanh nghiệp
- Là đầu mối thực hiện hợp tác với các tổ chức CERT nước ngoài
- Tham gia giúp Bộ trưởng trong công tác quản lý an toàn bảo mật trong các hoạtđộng bưu chính, viễn thông và công nghệ thông tin.
1.1.4 Giới thiệu về chi nhánh tại Đà Nẵng
Chi nhánh tại Đà Nẵng thực hiện các chức năng, nhiệm vụ tương tự như các chứcnăng, nhiệm vụ của trung tâm tại Hà Nội như đã nêu ở trên.
1.1.4.1 Cơ cấu nhân sự
Hình 1.2: Cơ cấu tổ chức tại chi nhánh Đà Nẵng
Đảm nhận lĩnh vực System, kiểm tra và giám sát hệ thốngcủa trung tâm ở khu vực Miền Trung và Tây NguyênTrần Phương Nam
Phạm Thị Hà Phương
Đảm nhận theo dõi và phân tích tình hình lây lan của cácloại mã độc tại khu vực Miền Trung và Tây Nguyên.Theo dõi và cảnh báo tình hình an toàn thông tin tại cáccổng thông tin điện tử của các sở ban ngành khu vựcMiền Trung và Tây Nguyên
Giám đốcĐặng Hải Sơn
Chuyên viên
Phan Phú Thuận Phạm Hồng VĩnhChuyên viên Trần Phương NamChuyên viên Phạm Thị Hà Phương Chuyên viên
Trang 111 Xây dựng và đang thử nghiệm quy trình đánh giá mức độ an toàn thông tin chocác cổng thông tin điện tử của chính phủ và các sở thông tin truyền thông 64 tỉnh thànhtừ tháng 12/2008 đến nay.
2 Theo dõi và quan sát tình hình an ninh mạng để cảnh báo về các vấn đề an ninhmạng trên địa bàn Miền Trung và Tây Nguyên
3 Phân tích điều tra các mẫu malware, virus xuất phát từ Việt Nam
4 Hợp tác với các đơn vị trên địa bàn miền Trung - Tây Nguyên để tiến hành đàotạo, tư vấn triển khai các giải pháp an toàn thông tin cho từng địa phương Như các sởthông tin Đà Nẵng, Quảng Nam, Đăklăk, Gia Lai, Đăk Nông, …
5 Tham gia bảo đảm an ninh mạng cho toàn hệ thống mạng được sử dụng tạiSeagame 25, tổ chức tại Lào năm 2009 Trung tâm đã lên các hạng mục, giới hạn antoàn, kiểm tra hằng ngày và cảnh báo vượt giới hạn an toàn cho phép trong suốt thờigian diễn ra Seagame 25
1.2 Giới thiệu đề tài1.2.1 Bối cảnh đề tài
Một phiên giao dịch an toàn là mong muốn của tất cả những ai tham gia giao dịchthông qua mạng Internet Để thiết lập được một phiên giao dịch an toàn, cần kết hợpnhiều yếu tố: Mã hóa thông tin, xác thực và chứng thực thông tin Trong đề tài này emđi sâu vào nghiên cứu bảo mật thư điện tử dựa trên một số phương pháp mã hóa thôngtin và chữ ký điện tử.
1.2.2 Mục đích thực hiện đề tài
Tìm hiểu một số phương pháp mã hóa, quá trình phát sinh khóa dựa trên các thuậttoán để mã hóa thư điện tử trước khi gửi đi, tìm hiểu thông qua quá trình tạo khóa, mãhóa và giải mã thông tin thông qua chương trình ứng dụng đang được sử dụng tại trungtâm Ngoài ra, quá trình tìm hiểu còn giúp em có được kiến thức và kinh nghiệm đểhoàn thành đồ án tốt nghiệp sắp tới
1.2.3 Những công việc được giao tại trung tâm
Thời gian thực tập bắt đầu từ ngày 19/04/2010, với đề tài: “Bảo mật thư điện tử”
em đã nhận được sự quan tâm, giúp đỡ của các anh chị trong chi nhánh, người chịutrách nhiệm chính hướng dẫn em là anh Trần Phương Nam
Trang 12Các công việc:
1 Tìm hiểu lý thuyết chung về mã hóa thông tin
2 Tìm hiểu các bài viết, báo cáo, đề tài nghiên cứu trong lĩnh vực này
3 Tìm hiểu một số thuật toán phát sinh khóa trong chương trình ứng dụng GnuPG,là chương trình đang được ứng dụng tại trung tâm để mã hóa, bảo mật thư điện tử.
4 Sử dụng chương trình ứng dụng GnuPG để mã hóa thông tin, gửi thư đã mã hóa5 Viết báo cáo và trình bày báo cáo thực tập
1.2.4 Kết quả đạt được
Hoàn thiện lý thuyết chung về mã hóa thông tin Hiểu chương trình ứng dụng, sửdụng thành thạo chương trình ứng dụng trong thực tế tại trung tâm Viết báo cáo thựctập.
Trang 13CHƯƠNG II: BẢO MẬT THƯ ĐIỆN TỬ TẠI TRUNG TÂMỨNG CỨU KHẨN CẤP MÁY TÍNH VIỆT NAM –CHI
NHÁNH ĐÀ NẴNG2.1 Giới thiệu chung về chương trình ứng dụng
GnuPG - Gnu Privacy Guard là một chương trình được sử dụng tại trung tâm từnăm 2008 Chương trình được ứng dụng nhằm bảo vệ thông tin nội bộ, hoặc các thôngtin từ trung tâm truyền ra bên ngoài được gửi bằng email thông qua mạng Internet Vớiđặc thù là một tổ chức hành chính sự nghiệp quốc gia, Trung tâm ứng cứu máy tínhkhẩn cấp Việt Nam phải tiến hành giao dịch với các đối tác trong và ngoài nước Cácthông tin xoay quanh vấn đề bảo mật, các vấn đề về an ninh mạng, các thông tin vềchính sách ngăn ngừa đe dọa an toàn giao dịch, an toàn thông tin, một số giải pháp hỗtrợ quản lý nhà nước và các thông tin tuyệt mật trong nội bộ trung tâm Vì vậy, giảipháp để đảm bảo an toàn thông tin, cụ thể là đối với thư điện tử là rất cần thiết và trungtâm đã chọn giải pháp này nhằm thực hiện yêu cầu an toàn thông tin trong giao dịch.Ưu điểm lớn nhất của chương trình là mã hóa thông điệp được gửi bằng email chongười nhận Giả sử một người nào đó vì vô tình hay cố tình có được tài khoản emailcủa người nhận nhưng cũng không thể xem được thông tin vì không biết khóa riêng
của cá nhân đó GnuPG cho phép áp dụng với các email có hỗ trợ POP3 - là một giaothức Internet được dùng để nhận email từ server về ứng dụng khách, cho phép gửi
và nhận email từ máy tính lên server hoặc ngược lại mà không cần sử dụng trang chophép sử dụng email chuyên dùng, nếu sử dụng Microsoft Office Outlook 2003 cũng cóthể sử dụng các chức năng tương tự Tuy nhiên, Outlook chỉ cho phép nhận và gửi cácemail thông thường, còn GnuPG thì cho phép nhận và gửi các email đã mã hóa.
2.2 Một số khái niệm
2.2.1 Mã hóa thông tin
Mã hóa thông tin là quá trình chuyển các văn bản hay các tài liệu gốc thành cácvăn bản, tài liệu dưới dạng mật mã để bất kỳ ai ngoài người gửi và người nhận, đềukhông thể đọc được
Trang 14Hình 2.1: Mô hình mã hóa thông tin
Mục đích chính của các kỹ thật mã hóa là đảm bảo an ninh cho các thông tin đượclưu trữ, đảm bảo an ninh cho thông tin trong quá trình truyền phát Mã hóa là một kỹthuật phổ biến hiện nay, có khả năng đảm bảo một số khía cạnh an ninh trong thươngmại điện tử như:
- Đảm bảo tính toàn vẹn của dữ liệu (Integrity): dữ liệu không bị thay đổi trongquá trình truyền
- Đảm bảo tính xác thực (Authority): Xác thực rằng chính người đó đã gửithông tin và người còn lại có khóa riêng mới là người nhận chứ không ai khác
- Đảm bảo tính bí mật của thông tin (Confidentiality): dữ liệu không bị xem bởi“bên thứ 3”
- Chống phủ định (Non-repudiation): là cơ chế người thực hiện hành độngkhông thể chối bỏ những gì mình đã làm, có thể kiểm chứng được nguồn gốc hoặcngười đưa tin
Kỹ thuật mã hóa được sử dụng từ thời Ai Cập cổ đại Theo kỹ thuật cổ truyền,thông điệp được mã hóa bằng tay, sử dụng các phương pháp dựa trên các chữ cái củathông điệp Hai cách mã hóa thường được sử dụng là kỹ thuật thay thế và kỹ thuậthoán vị Theo kỹ thuật thay thế, mỗi chữ cái được thay thế bởi một chữ cái khác Giảsử, nếu “a” được thay bằng “b”, “b” được thay bằng “c”, “c” được thay bằng “d”, vàcứ như thế thì chữ “SIGNATURE” sẽ được mã hóa thành “TJHMBUVSF” Theo kỹthuật hoán vị, thứ tự các chữ cái sẽ bị thay đổi giả sử, ta hoán đổi vị trí các ký tự, chữđầu thành chữ cuối, cứ lần lượt như thế, chữ “SIGNATURE” có thể bị xáo thành“ERUTANGIS”.
Trang 15Hệ thống mã hóa hiện đại thường được số hóa Thuật toán dựa trên các bit đơncủa thông điệp chứ không dựa trên ký hiệu các chữ cái Máy tính lưu trữ dữ liệu dướidạng chuỗi nhị phân, trình tự của các số 0 và 1 Mỗi ký tự được gọi là một bit Các mãkhóa và mã mở là các chuỗi nhị phân với độ dài khóa được định sẵn Hiện nay hai kỹ
thuật mã hóa cơ bản được sử dụng để mã hóa thông tin trên internet là mã hóa khóa bí
mật và mã hóa khóa công cộng.
2.2.2 Mã hóa khóa bí mật
Mã hóa khóa bí mật hay còn gọi là mã hóa khóa riêng hoặc mã hóa đối xứng là
phương pháp mã hóa chỉ dùng một khóa cho cả quá trình mã hóa và quá trình giải mã.Mã khóa bí mật sử dụng một khóa đối xứng để mã hóa và giải mã thông điệp Trongtrường hợp này, người gửi mã hóa một thông điệp sử dụng khóa bí mật đối xứng, sauđó gửi thông điệp đã mã hóa cùng khóa bí mật cho người nhận, người nhận sẽ sử dụngkhóa này để giải mã thông điệp Kỹ thuật này được được IBM phát triển, áp dụng chocơ quan chính phủ Mỹ năm 1977 được gọi là tiêu chuẩn mã hóa dữ liệu (DES- DataEncryption Standard)
Ví dụ 1: Khách hàng X muốn gửi 1 đơn đặt hàng cho người bán Y X mã hóa
đơn đặt hàng của mình bằng một mã khóa, rồi gửi đơn đặt hàng đó cho Y
Khi nhận được đơn đặt hàng đã mã hóa, Y giải mã đơn đặt hàng bằng chính khóamà X đã sử dụng.Việc sử dụng loại khóa này rất đơn giản và dễ dàng.
Hình 2.2: Quá trình truyền tin sử dụng mã khóa bí mật
Một vấn đề gặp phải khi sử dụng mã khóa bí mật là trước khi thực hiện giaodịch, truyền thông tin, để đảm bảo an ninh cho dữ liệu, hai người gửi và nhận phảitìm cách trao đổi khóa đối xứng một cách an toàn Họ có thể liên lạc với nhau quabưu điện, điện thoại, tuy nhiên cách này cũng không thể đảm bảo rằng không cóngười nghe lén thông tin qua điện thoại của bạn, hoặc có người mạo danh và nhận
Trang 16bưu phẩm là khóa bí mật Hơn nữa cách này càng không phù hợp với hệ thốngthông tin lớn Tính toàn vẹn và bí mật của thông tin có thể bị lộ trong quá trìnhchuyển giữa người gửi và người nhận Bên cạnh đó, cả hai bên trong giao dịch đềudùng một khóa để mã hóa và giải mã, vì thế chúng ta không thể xác minh được ai làngười đã tạo ra thông điệp Để mỗi thông điệp gửi cho một người được an toàn,chúng ta phải tạo ra các mật mã riêng cho từng người nhận Giả sử có n người thamgia giao dịch thì chúng ta phải tạo ra n(n-1)/2 khóa Như vậy số lượng khóa sẽ rấtnhiều, gây khó khăn cho nhà quản lý.
Có thể tóm tắt những ưu và nhược điểm của việc sử dụng mã hóa khóa bí mật.
2.2.3 Mã hóa khóa công cộng
Mã hóa khóa công cộng hay còn gọi lã mã hóa khóa công khai hoặc mã hóakhóa bất đối xứng Đây là phương pháp sử dụng hai mã khóa một mã khóa sử dụngtrong quá trình mã hóa và một mã khóa sử dụng trong quá trình giải mã Hai khóa nàycó quan hệ với nhau về mặt thuật toán sao cho dữ liệu được mã hóa bằng khóa này sẽđược giải mã bằng khóa kia.
Mỗi người sử dụng có hai loại mã khóa: mã khóa bí mật chỉ riêng người gửi biếtcòn mã khóa công cộng được thông báo rộng rãi cho những người sử dụng khác tronghệ thống Để gửi một thông điệp an ninh, người gửi sử dụng mã khóa công cộng củangười nhận để mã hóa thông điệp Người nhận khi nhận được thông điệp (đã được mãhóa) sẽ sử dụng mã khóa cá nhân của mình để giải mã thông điệp Vì không ai có thể
Trang 17biết được mã khóa bí mật của người nhận nên không ai có thể đọc được thông điệp đó,thông điệp được đảm bảo.
Hình 2.3: Quá trình truyền tin sử dụng mã hóa công cộng
Người ta có thể sử dụng cả mã hóa bí mật và mã hóa công cộng để mã hóathông điệp Giả sử rằng khách hàng sử dụng mã khóa công cộng của người bán để mãkhóa thông điệp, lúc này có thể xác minh được người nhận là người bán Tuy nhiênngười bán lại không thể xác minh được người gửi là ai Nếu sử dụng mã khóa bí mậtcủa người gửi để mã hóa thông điệp, khi đó thông điệp chỉ có thể được giải mã bằngmã hóa công cộng của người gửi Như vậy có thể xác minh được người gửi là ai Haiphương pháp có thể kết hợp để xác minh cả hai bên tham gia giao dịch, theo đó cả hailoại mã khóa công cộng và mã khóa bí mật đều sử dụng để mã hóa và sau đó ngườinhận cũng sử dụng cả hai khóa này để giải mã Bởi mỗi người đều có một cặp khóa,khóa bí mật và khóa công cộng cho mình nên giả sử khi có n người tham gia giao dịchthì sẽ tạo ra 2n khóa Dựa trên giả thuyết này chúng ta có thể đi đến một kết luận đểđảm bảo sử dụng phương pháp mã hóa tốt nhất, giả sử n là số người tham gia giaodịch, ta có phương trình toán học như sau: [n(n-1)/2] - 2n>=0
Giải phương trình ta có: nếu n>5 ta nên sử dụng phương pháp mã hóa khóa côngcộng, nếu n<=5 ta nên sử dụng phương pháp mã hóa khóa bí mật
Có thể tóm tắt những ưu và nhược điểm của việc sử dụng mã hóa khóa côngcộng:
Trang 18– Khuyết điểm
• Phải dùng 2 khóa cho một quá trình truyền
Thuật toán phổ biến nhất trong mã hóa khóa công cộng là kỹ thuật mã hóa RSA,được xuất hiện từ năm 1977 Ngày nay, RSA được sử dụng ở hầu hết ở các công ty lớntrên thế giới và đặc biệt là ứng dụng của kỹ thuật này với chữ ký điện tử trong hệ thốngthương mại điện tử.
2.3 Một số thuật toán trong chương trình ứng dụng2.3.1 Thuật toán mã hóa RSA
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 Nó đánh dấu một sự tiếnbộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng 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.
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vàonăm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy từ 3chữ cái đầu của tên 3 tác giả.
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983, sốđăng ký 4,405,829 Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000 Tuynhiên, do thuật toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầunhư không có giá trị bên ngoài Hoa Kỳ.
Sự khác biệt giữa một hệ thống mã bí mật với một hệ thống mã công khai là hệthống mã công khai dùng hai khóa khác nhau để mã hóa và giải mã Do đó, một bộ mãcông khai sẽ bao gồm hai khóa: một khóa dành cho người mã hóa, thường được côngkhai và khóa còn lại dùng cho người giải mã, thường được giữ bí mật Mặc dù, haikhóa đó thực hiện các thao tác ngược nhau và có liên quan với nhau, nhưng phải làmsao để không thể suy ra khóa bí mật từ khóa công khai.
Thuật toán
Thuật toán RSA chủ yếu dựa trên 3 số nguyên dương (d, e, n) với:d: số mũ bí mật
Trang 19Cặp (e, n) được gọi là khoá công khai (Public Key)Cặp (d, n) được gọi là khoá bí mật (Private Key)Cơ sở toán học của hệ mã RSA là định lý Euler:
“Nếu n và a là 2 số nguyên tố cùng nhau, ta có aФ(n)n) = 1(n)mod n), trong đó Ф(n)n) làsố nguyên trong đoạn [1, n], và nguyên tố cùng nhau với n”.
Ta có:
Nếu n là số nguyên tố thì Ф(n) = n -1
Nếu n là tích của 2 số nguyên tố p và q( n = p * q) thì Ф(n) = (p – 1) *(q – 1).Giả sử thông điệp số m là một số nguyên trong đoạn [2, n -1], sau đó, m sẽđược mã hoá bằng khoá công khai (e, n) thành số nguyên c.
Trang 20B dùng khoá công khai (e, n) này, mã hoá thông điệp m thành c theocông thức c = me mod n.
Khi giải mã, dựa vào những số được mã hoá bằng Public Key, người dùng sẽ giảimã dữ liệu bằng Private Key của mình Thật sự, đây cũng là những con số, dựa vào sốd.
Public Key là chung (người nào cũng có thể biết) nhưng để giải mã được văn bảnbị mã hoá thì phải dùng Private key phù hợp với Public key trên, và Private key này làbí mật, chỉ người cần giải mã mới biết đến.
Ví dụ 2:
Trước hết, Ta chọn hai số nguyên tố p và q, với p = 5, q = 7 Tính n = p*q = 5 * 7 = 35
Z = (p-1) * (q – 1) = (5 -1)(7-1) = 24 Tiếp đến, chọn e thoả điều kiện 1< e< n
chọn e = 5
Tìm d, sao cho e * d -1 chia hết cho z Ta có: ( 5 * 29- 1) thì thoả chia hết cho 24 chọn d = 29
Do đó, ta có cặp key (Key Pair) như sau: Public Key = (n,e) = (35, 5)
Trang 21Trong bảng chữ cái, có tất cả 26 ký tự, các ký tự ứng với một con số Do đó, ta cóbảng sau:
Bảng 1: Mã hóa chuỗi SECURE
Nếu tại đây, dữ liệu trên đường chuyển đến người nhận bị một người khác bắtđược, anh ta sẽ không biết được nội dung muốn nói điều gì, mà chỉ nhận được đó chỉ lànhững con số, không nói lên được điều gì Nếu muốn đọc được nội dung, anh ta phảicó Private Key, mà ứng với Public Key dùng để mã hoá dữ liệu trên thì phải có privateKey thích hợp Do đó, dữ liệu sẽ an toàn.
Khi dữ liệu đến tay người nhận, muốn khôi phục lại dữ liệu gốc ban đầu, ta sẽdecrypt lại với n = 35, d = 29
Bảng 2: Giải mã chuỗi SECURE
Public Key = (n,e) = (35, 5).Private Key = (n,d) = (35,29).
Khi mã hoá dữ liệu dùng thuật toán RSA, dữ liệu sẽ được gởi đi dưới dạng nhữngcon số, bằng cách dùng Public Key để mã hoá Trên đường truyền, nếu Hacker bắtđược thì đó cũng chỉ là những con số, không thể đoán được gì Khi nhận được dữ liệubị mã hoá, người nhận sẽ dùng Private Key phù hợp để giải mã ngược trở lại.
Tốc độ mã hoá và giải mã dữ liệu của RSA không phụ thuộc vào kích thước của Key (n )
Trang 22Decryption 0.16 sec 0.48 sec 0.93 sec
Bảng 3: Tốc độ mã hóa, giải mã của RSA2.3.2 Thuật toán mã hóa El Gamal
Ngoài phương pháp mã hoá dữ liệu dùng RSA, ở thuật toán mã hoá bất đối xứngcòn dùng El Gamal El Gamal cũng là sự lựa chọn cho các tổ chức lớn cần sự bảo mậtcao, an toàn của dữ liệu, nhưng nó ít phổ biến và thông dụng như là RSA được xâydựng bởi Taher ElGamal.
Thuật toán
o Chọn số nguyên tố po Chọn số nguyên tố k
o Chọn g và x thoả: g< p và x <po Tính y = g x mod p
o Từ đây, ta có cặp Key (Key Pair)Private Key = (x)
Public Key = (y, g, p)o Quy tắc mã hoá:
a = gk mod pb = m* y k mod po Quy tắc giải mã:
m = b / (ax) mod po Với:
a và b là: văn bản bị mã hoá (Cipher text)m = văn bản chưa bị mã hoá (Plain text)