MỤC LỤC
Trang
MỤC LỤC i
DANH MỤC HÌNH VẼ iii
DANH MỤC CHỮ VIẾT TẮT iv
LỜI CẢM ƠN v
LỜ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
1.2.1 Bối cảnh đề tài 4
1.2.2 Mục đích thực hiện đề tài 4
1.2.3 Những công việc được giao tại trung tâm 4
1.2.4 Kết quả đạt được 5
CHƯƠ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ẴNG 6
2.1 Giới thiệu chung về chương trình ứng dụng 6
2.2 Một số khái niệm 6
2.2.1 Mã hóa thông tin 6
2.2.2 Mã hóa khóa bí mật 8
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
3.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
43 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2937 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Bảo mật thư điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
T NAM – CHI NHÁNH ĐÀ NẴNG (GỌI TẮT LÀ VNCERT)
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 Quá trình hình thành và phát triển của VNCERT
Được thành lập theo Quyết định 339/2005 ngày 20 tháng 12 năm 2005 của Thủ tướng Chính phủ, Trung tâm Ứng cứu khẩn cấp Máy tính Việt Nam (Vietnam Computer Emergency Response Team- VNCERT) là đơn vị trực thuộc Bộ Thông tin- Truyền thông thực hiện chức năng điều phối và tổ chức các hoạt động phản ứng nhanh các sự cố máy tính cho mạng Internet Việt Nam.
Trụ sở chính đặt tại Hà Nội.
Địa chỉ liên hệ: A12 lô 11 khu đô thị Định Công - Hà Nội
Điện thoại: Tổng đài 04.36404423 - 04.36404421 - 04. 36404424
Email: office@vncert.vn, vncert@mic.gov.vn
website:
1.1.2 Cơ cấu tổ chức
Ngoài trụ sở chính đặt tại Hà Nội, trung tâm còn có các chi nhánh tại Miền Trung và Miền Nam, nhằm tạo điều kiện cho công tác ứng cứu kịp thời, cũng như đảm bảo tính nhanh nhạy, góp phần tham gia công tác quản lý tại các vùng miền.
Chi nhánh tại Miền Trung: 42 Trần Quốc Toản, TP Đà Nẵng
Chi nhánh tại Miền Nam: 27 Nguyễn Bỉnh Khiêm, TP Hồ Chí Minh
Cùng 5 phòng ban chức năng, nhiệm vụ cụ thể gồm các phòng Hành chính– Tổng hợp, phòng Nghiệp vụ, phòng Kỹ thuật hệ thống, phòng Nghiên cứu– Phát triển và phòng Tư vấn- Đào tạo. Các chi nhánh, phòng ban ngoài nhiệm vụ cụ thể của mình còn hỗ trợ nhau hoàn thành nhiệm vụ chính của trung tâm.
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
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
Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT- Vietnam Computer Emergency Response Team) là đơn vị trực thuộc Bộ Thông tin và Truyền thông, thực hiện chức năng điều phối các hoạt động ứng cứu sự cố máy tính trong toàn quốc; cảnh báo kịp thời các vấn đề về an toàn mạng máy tính; xây dựng, phối hợp xây dựng các tiêu chuẩn kỹ thuật về an toàn mạng máy tính; 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.
Điều phối các hoạt động ứng cứu sự cố máy tính trong toàn quốc. Chức năng chính có thể tóm tắt như sau:
- Cảnh báo kịp thời các vấn đề về an toàn mạng máy tính
- Xây dựng, phối hợp xây dựng các tiêu chuẩn kỹ thuật về an toàn mạng máy tính
- 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ức nă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ự
Chuyên viên
Phạm Thị Hà Phương
Giám đốc
Đặng Hải Sơn
Chuyên viên Phan Phú Thuận
Chuyên viên Phạm Hồng Vĩnh
Chuyên viên
Trần Phương Nam
Hình 1.2: Cơ cấu tổ chức tại chi nhánh Đà Nẵng
Nhiệm vụ, chức năng cụ thể
- Giám đốc: Điều hành và quản lý chung các công việc tại chi nhánh và các hoạt động của các thành viên trong chi nhánh
- Các chuyên viên
Chuyên viên
Nhiệm vụ cụ thể
Phan Phú Thuận
Phạm Hồng Vĩnh
Đảm nhận lĩnh vực System, kiểm tra và giám sát hệ thống của trung tâm ở khu vực Miền Trung và Tây Nguyên
Trầ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ác loạ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ác cổng thông tin điện tử của các sở ban ngành khu vực Miền Trung và Tây Nguyên
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
1. Xây dựng và đang thử nghiệm quy trình đánh giá mức độ an toàn thông tin cho cá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ành từ 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 ninh mạ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 đào tạ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ại Seagame 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 an toà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ời gian diễn ra Seagame 25
1.2 Giới thiệu đề tài
1.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ịch thô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ợp nhiề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ông tin 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ật toá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 trung tâ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ịu trách nhiệm chính hướng dẫn em là anh Trần Phương Nam
Các công việc:
Tìm hiểu lý thuyết chung về mã hóa thông tin
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
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ử.
Sử dụng chương trình ứng dụng GnuPG để mã hóa thông tin, gửi thư đã mã hóa
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ực tập.
CHƯƠ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ẴNG
2.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ông tin 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ính khẩ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ác thô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ải phá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à trung tâ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 cho ngườ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 email củ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 giao thứ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 cho phé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ác email 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ác vă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, đều không thể đọc được.
Hì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 được lư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ương mạ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 trong quá 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ửi thô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 động không thể chối bỏ những gì mình đã làm, có thể kiểm chứng được nguồn gốc hoặc ngườ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ủa thông điệp. Hai cách mã hóa thường được sử dụng là kỹ thuật thay thế và kỹ thuật hoá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”.
Hệ 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 đơn củ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ưới dạ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. Trong trườ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ụng khó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 cho cơ quan chính phủ Mỹ năm 1977 được gọi là tiêu chuẩn mã hóa dữ liệu (DES- Data Encryption 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óa mà 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 giao dịch, truyền thông tin, để đảm bảo an ninh cho dữ liệu, hai người gửi và nhận phải tì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 qua bư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 bư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ống thô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ình chuyển giữa người gửi và người nhận. Bên cạnh đó, cả hai bên trong giao dịch đều dù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 tham gia 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ất nhiề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.
– Ưu điểm
Là một phương pháp mã hóa đơn giản và hữu dụng trong một số trường hợp
– Khuyết điểm
Các bên tham gia trong quá trình mã hóa cần tin tưởng nhau trong việc trao mã khóa
Rất khó để thực hiện việc phân phối an toàn các mã khóa bí mật với hàng ngàn khách hàng trực tuyến
Tốn một khoảng chi phí không nhỏ cho việc tạo một mã khóa riêng và chuyển nó tới khách hàng muốn giao dịch
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óa khó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ụng trong 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ày có 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ết cò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 trong hệ 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ủa ngườ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ể biế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óa thô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ên ngườ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ật củ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ằng mã 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. Hai phương pháp có thể kết hợp để xác minh cả hai bên tham gia giao dịch, theo đó cả hai loạ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ười nhậ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ịch thì 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 giao dị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ông cộ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ông cộng:
- Ưu điểm
Phù hợp khi có nhiều bên tham gia truyền thông trên mạng → việc cung cấp khóa công khai an toàn hơn
Dùng 2 khóa đảm bảo an toàn thông tin
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ớn trê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ống thương mại điện tử.
2.3 Một số thuật toán trong chương trình ứng dụng
2.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ến bộ 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ào năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3 chữ 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. Tuy nhiê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ầu như 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ông khai 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ù, hai khó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àm sao để 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
e: số mũ công khai
n: hằng số của phương pháp
Cặ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) = 1(mod n), trong đó Ф(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.
c = me mod n.
Nếu số nguyên d trong khoá bí mật (d, n) thoả điều kiện:
e * d = 1(mod Ф(n))
thì tồn tại một số nguyên k sao cho e * k = k* Ф(n) +1.
Và cd (mod n) = (me (mod n)) d (mod n)
= me*d (mod n)
= [mk.j(n) (mod n)] * [m (mod n)]
= [k (mod n)] * [m (mod n)]
= m.
Có thể tìm lại thông điệp m từ khoá bí mật( d, n) và bản mã c theo công thức: m = cd mod n.
Các bước thực hiện
Tạo ngẫu nhiên 2 số nguyên tố p, q phân biệt, gần nhau và rất lớn (có số ký tự ít nhất là 100) và sau đó tính:
n = p * q
Ф(n) = (p -1) * (q -1)
Chọn ngẫu nhiên 1 số e sao cho 1 < e < Ф(n), với e là số nguyên tố cùng nhau với Ф(n).
Tính số nghịch đảo d của e đối với Ф(n): 1 < d < Ф(n), e*d = 1(mod Ф(n)) (dùng thuật toán Eulid mở rộng).
- Mã hoá: B muốn gởi thông điệp m cho A với yêu cầu cần bảo mật thông tin.
B yêu cầu A gởi khoá công khai (e, n)
B dùng khoá công khai (e, n) này, mã hoá thông điệp m thành c theo công thức c = me mod n.
B sẽ gởi c cho A.
- Giải mã: dùng khoá bí mật (d, n), A sẽ tính m = cd mod n, để có thể khôi phục lại dữ liệu gốc ban đầu do B gởi đến.
Chú ý:
Với dữ liệu có kích thước lớn, khi mã hoá, dữ liệu sẽ được phân chia thành nhiều block nhỏ để dể dàng hơn.
Dữ liệu khi được mã hoá sẽ biến thành những con số, có kích thước phụ thuộc vào số n (thường là nhỏ hơn n). Khi người nhận nhận được dữ liệu bị mã hoá, trước khi giải mã, nếu người nhận muốn đọc thì đó chỉ là những con số vô nghĩa, không thể đoán được nội dung. Để đọc được nội dung thì người nhận phải giải mã lại dữ liệu bị mã hoá trên, dùng Private Key của mình phù hợp với Public Key đã gởi cho người gởi.
Khi giải mã, dựa vào những số được mã hoá bằng Public Key, người dùng sẽ giải mã 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ản bị 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)
Private Key = (n,d) = (35,29)
Áp dụng để mã hoá chuỗi : SECURE
Trong 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:
Nội dung
Vị trí
Me
Nội dung bị mã hoá
S
19
2476099
24
E
5
3125
10
C
3
243
33
U
21
4084101
21
R
18
1889568
23
E
5
3125
10
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ải có Private Key, mà ứng với Public Key dùng để mã hoá dữ liệu trên thì phải có private Key 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
Nội dung bị mã hoá
M = cd mod n
Dữ liệu gốc
24
19
S
10
5
E
33
3
C
21
21
U
23
18
R
10
5
E
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ững con 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ệu bị 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 )
Length of ‘n’
512 bit
768 bits
1,024 bits
Encryption
0.03 sec
0.05 sec
0.08 sec
Decryption
0.16 sec
0.48 sec
0.93 sec
Bảng 3: Tốc độ mã hóa, giải mã của RSA
2.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ứng cò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ật cao, 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ây dựng bởi Taher ElGamal.
Thuật toán
Chọn số nguyên tố p
Chọn số nguyên tố k
Chọn g và x thoả: g< p và x <p
Tính y = g x mod p
Từ đây, ta có cặp Key (Key Pair)
Private Key = (x)
Public Key = (y, g, p)
Quy tắc mã hoá:
a = gk mod p
b = m* y k mod p
Quy tắc giải mã:
m = b / (ax) mod p
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)
Ví dụ 3:
1. Mã hoá và giải mã ký tự P trong bảng chữ cái à ứng với vị trí 16
2. Chọn p = 2579
3. Chọn k = 853
4. Chọn g và x thoả: g < p và x< p nên g = 2, x = 765
5. Tính y = gx mod p = 2765 mod 2579 à y = 949
6. Ta có cặp key:
Public Key = (x) = 765
Private Key = (y, g, p) = (949, 2, 2579)
- Mã hoá
a = gk mod p = 2853 mod 2579 = 435
b = m * yk mod p = 16 * 949853 mod 2579 = 259
- Giải mã
m = b / (ax) mod p = 259/ (435765) mod 2579 = 16.
Sau khi giải mã xong, ta thấy dữ liệu được khôi phục giống như trạng thái ban đầu. Ở ví dụ này, cũng như RSA, El Gamal thực hiện việc mã hoá và giải mã đều trên những con số. Nếu như bị người khác bắt được, thì họ không thể biết và đoán được gì.
El Gamal cũng sử dụng key có kích thước lớn, từ 512 đến 1024 bits. Giúp cho dữ liệu được an toàn, bảo mật trên đường truyền.
Tốc độ mã hoá và giải mã thì chậm hơn so với RSA, ít được dùng phổ biến và rộng rãi như là RSA
Length of ‘p’
512 bit
768 bits
1,024 bits
Encryption
0.33 sec
0.80 sec
1.09 sec
Decryption
0.24 sec
0.58 sec
0.77 sec
Bảng 4: Tốc độ mã hóa, giải mã của El Gamal
2.4 Chương trình ứng dụng GnuPG
2.4.1 Cài đặt GnuPG
GnuPG là một chương trình được xây dựng ngày 05/09/2009, hiện nay được sử dụng ở trung tâm là phiên bản vesion 1.4.10.24816
Phiên bản này có giao diện dành cho hệ điều hành Window. Yêu cầu máy cấu hình P4
Để cài đặt chương trình, nhấp chọn file Setup, cài đặt Gnu Privacy Guard
Hình 3.1: Giao diện cài đặt GnuPG
Chọn Next để tiếp tục cài đặt chương trình, các bước cài đặt tương tự như việc cài đặt các chương trình ứng dụng khác, chọn địa chỉ cài đặt, … chọn Install để tiến hành cài đặt, chọn Finish khi hoàn tất việc cài đặt.
Hình 3.2: Giao diện cài đặt GnuPG
Sau khi cài xong GnuPG, ta tiến hành cài đặt Enigmail. Trước tiên mở hộp thoại Inbox-Mozilla Thunderbird, là hộp thoại thực hiện các thao tác mã hóa, gửi mail, nhận mail. Để cài đặt, ta chọn Tool/Add ons
Hình 3.3: Giao diện cài đặt Enigmail
Chọn Install để tiến hành cài đặt
Hình 3.4: Giao diện cài đặt Enigmail
Chọn File Enigmail trong chương trình để cài đặt
Hình 3.5: Giao diện cài đặt Enigmail
Sau khi cài đặt xong ta có giao diện như hình dưới đây, nhấp chọn nút lệnh Restart Thunderbird để khởi động Enigmail
Hình 3.6: Giao diện khởi động Enigmail
2.4.2 Tạo khóa mới
Tại giao diện Inbox – Mozilla Thunderbird, chọn OpenPGP/Key Management
Hình 3.7: Giao diện tạo khóa mới
Xuất hiện hộp thoại dưới đây, ta chọn Generate/New Key Pair
Hình 3.8: Giao diện tạo khóa mới
Sau đó điền đầy đủ các thông tin pass phrase, chọn kích thước khóa, thuật toán tạo khóa, cuối cùng chọn nút Generate Key trong hộp thoại tiếp theo
Hình 3.9: Giao diện tạo khóa mới
Sau khi hoàn thành các thao tác trên ta thấy hộp thoại thông báo xuất hiện, chọn Generate Certificate để chứng thực việc tạo khóa mới
Hình 3.10: Giao diện chứng thực việc tạo khóa mới
Tạo và lưu chứng thực này vào địa chỉ bạn muốn. Như vậy, ta đã hoàn tất
Các file đính kèm theo tài liệu này:
- Bảo mật thư điện tử.doc