Mã hóa là phƣơng pháp để biến 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ông thể hiểu đƣợc nếu không có phƣơng tiện giải mã. Mã hóa đã xuất hiện từ rất sớm, đƣợc con ngƣời tâm chung nghiên cứu. Cho đến nay nghiên cứu mã hóa đã trở thành một ngành là mật mã học.
Mục đích mã hóa là giúp ngƣời gửi, gửi thông điệp đến ngƣời nhận đƣợc bảo đảm bí mật không để ngƣời khác biết đƣợc. Trong quá trình gửi tin thông tin đƣợc truyền trong môi trƣờng mạng phức tạp khó kiểm soát và tin tắc có thể bắt đƣợc các gói tin trên môi trƣờng truyền tin.
Vậy để thông tin đƣợc dữ bí mật thì thông tin phải đƣợc mã hóa để không thể đọc đƣợc phòng trƣờng hợp tin tặc đánh cắp đƣợc trong môi trƣờng
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
truyền tin. Cho dù tin tặc có thể bắt đƣợc các gói tin cũng không thể đọc đƣợc thông tin.
Khi đến ngƣời nhận thông tin cần phải đƣợc giải mã trở lại để trở thành bản rõ ban đầu để ngƣời nhận hiểu đƣợc thông tiệp của ngƣời gửi.
Phát triển cùng với lịch sử loài ngƣời mã hóa đƣợc chia thành 02 giai đoạn là mã hóa cổ điển (trƣớc 1970) và mã hóa hiện đại (từ 1970 đến nay).
Ở mã hóa cổ điển con ngƣời cố gắng tìm một cách để bảo vệ thông tin, tránh việc thông tin bị giải mã khi ngƣời khác có đƣợc chúng. Các cách áp dụng đó thƣờng dùng một số cách đơn giản và có thể dễ dàng bị giải mã nếu thông tin về cách thức che giấu bị lộ hoặc bị suy đoán. Đƣợc áp dụng nhiều trong lĩnh vực quân đội. Các phƣơng pháp mã hóa cổ điển đã đƣợc áp dụng nhƣ các loại mật mã thay thế nhƣ mật mã Ceasar, mật mã Playfair, mật mã Hill, mật mã Vigenere hoặc các loại mật mã hoán vị nhƣ mật mã rail-fence.
Ví dụ: Mã hóa văn bản gốc có nội dung là “CAO HOC K10B” với mã là dịch vòng 1 đơn vị đối với bảng mã ASCII.
Bản rõ là chuỗi: C A O H O C K 1 0 B
Biến đổi bản rõ ra mã ASCII ta đƣợc: 43 41 4F 20 48 4F 43 20 4B 31 30 42
Dịch vòng bản rõ 1 đơn vị ta có bản mã: 44 42 50 21 49 50 44 21 4C 32 31 43
Hiển thị bảng mã dƣới dạng chuỗi: D B P ! I P D ! L 2 1 C
Ngƣời ngửi sẽ gửi chuỗi đã đƣợc mã hóa: D B P ! I P D ! L 2 1 C
Ngƣời nhận giải mã sẽ thu đƣợc bản rõ là: C A O H O C K 1 0 B
Sự cần thiết phải có các phƣơng pháp mã hóa an toàn hơn đã đƣợc đáp ứng bằng việc áp dụng các kết quả nghiên cứu của toán học. Sự thay đổi về phƣơng pháp mã hóa cũng nhƣ độ an toàn của các hệ mã mới đã đƣa lịch sử của mật mã học sang trang mới. Các hệ mật mã với khóa mã đối xứng đã góp phần to lớn trong việc củng cố vai trò của mật mã học trong các ứng dụng của con ngƣời. Đƣa mật mã đến với cả các ứng dụng trong cuộc sống đời thƣờng
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
của con ngƣời, mật mã không còn chỉ đƣợc nhắc đến nhiều trong lĩnh vực quân sự. Ứng của mật mã học đã trở thành một công cụ cần thiết cho mọi ngƣời, cần thiết cho các hoạt động thƣờng ngày. Các phƣơng pháp mã hóa khác nhau có những ƣu, nhƣợc điểm khác nhau. Khi sử dụng các phƣơng pháp mã hóa, ngƣời dùng sẽ cân nhắc để lựa chọn phƣơng pháp mã hóa thích hợp nhất đối với mình.
Hệ mật mã hiện đại thƣờng gồm 5 thành phần (P, C, K, E, D)
Nội dung cần mã hóa thể hiện dƣới dạng bản rõ (P). Ngƣời gửi sử dụng qui tắc (E) và khóa (K) mã hoá bản rõ (P), kết quả thu đƣợc gọi là bản mã (EK (P) = C). Bản mã này đƣợc gửi đi trên một đƣờng truyền tới ngƣời nhận, sau khi nhận đƣợc bản mã (C) ngƣời nhận sử dụng qui tắc (D) và khóa (K) giải mã nó để hiểu đƣợc nội dung thông điệp gốc (DK’(C) = P) [4,Tr92].
Hệ mật mã hiện đại cần đảm bảo đƣợc yêu cầu đảm bảo tính bảo mật: ngăn không để ngƣời lạ thực hiện việc trích chọn, sửa đổi thông tin từ các bản mã đƣợc gửi trên các kênh truyền phổ biến (thƣờng không an toàn).
* Hệ mã hóa đối xứng
Nhƣ tên gọi của hệ mã hóa “đối xứng”. Công việc giải mã đƣợc tiến hành ngƣợc lại với mã hóa, giải mã bằng chính khóa đã dùng để mã hóa.
Mối trƣờng truyền tin
Bản rõ Bản mã Bản mã Bản rõ
Ngƣời gửi Ngƣời nhận
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mục đích: ngƣời gửi thực hiện gửi thông điệp cho ngƣời nhận một cách bí mật không cho ngƣời ngoài biết.
Quá trình gửi: ngƣời gửi tiến hành mã hóa bản rõ bằng một khóa bí mật nào đó, sau đó gửi bản mã này đến ngƣời nhận.
Quá trình nhận: ngƣời nhận nhận đƣợc bản mã dùng chính khóa mà ngƣời gửi đã khóa để giải mã chi ra bản rõ có thể đọc đƣợc thông điệp.
Đi cùng với lịch sử đã có rất nhiều hệ mã hóa đối xứng nổi tiếng nhƣ:
Twofish, Serpent, Blowfish, CAST5, RC4, DES, Triple DES, và IDEA ... chúng đƣợc thiết kế và áp dụng hiểu quả trên thiết bị thông tin. Nhƣng do công nghệ liên tục phát triển các hệ mã hóa trên đã rần bộc lỗ những điểm yếu khiến tin tắc có thể khai thác để đọc đƣợc các thông tin mật.
Hiện nay các thuật toán trên đƣợc thay bằng thuật toán “Tiêu chuẩn mã hóa tiên tiến - AES” có độ bảo mật cao và chƣa phát hiện lỗ hổng bảo mật. AES hiện đang đƣợc cài đặt ở rất nhiều các thiết bị phần mềm, phần cứng trong hệ thống thông tin hiện nay.
Hệ mã hóa đối xứng có tốc độ nhanh, độ an toàn cao nhƣng có một
nhược điểm là thông báo khóa cho người nhận biết được khóa để thực hiện giải mã. Ta không thể mã hóa cả khóa vì nếu gửi khóa K bằng cách mã hóa dữ liệu khóa thì vẫn phải dùng một khóa khác K2 để thực hiện mã hóa, vậy làm sao báo cho ngƣời nhận biết đƣợc K2 để thực hiện giải mã cho ra K1?
Nếu gửi khóa cho ngƣời nhận mà không mã hóa thì trên đƣờng truyền rất có thể sẽ bị tin tặc tóm đƣợc hoặc bị nghe trộm và dùng để giải mã đƣợc thông tin thông tin.
Mã hóa đối xứng đƣợc dùng để mã hóa dữ liệu trên máy cục bộ. Khi truyền dữ liệu mã hóa trên mạng thì hệ mã đối xứng thƣờng kết hợp với một hệ mã hóa khác để truyền khóa cho ngƣời nhận.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mối trƣờng truyền tin
Bản rõ Bản mã Bản mã Bản rõ
Ngƣời gửi Ngƣời nhận
AES hiện đang là hệ mã hóa bảo mật cho những thông tin tối mật. Do vậy nghiên cứu hệ mã hóa đối xứng sẽ tập chung nghiên cứu mã hóa AES.
* Hệ mã hóa công khai (bất đối xứng)
Là hệ mật mã sử dụng cặp khóa (02 khóa), một khóa dùng để mã hóa, khóa còn lại dùng để giải mã. Chính nhờ tính chất quan trọng này mật mã khóa công khai đã đƣợc đã đƣợc ứng dụng mạnh mẽ để bảo mật thông tin khi truyền trên mạng cũng nhƣ xác nhận thông tin thông qua chữ ký điện tử. Hai khóa này khác nhau và có quan hệ toán học với nhau.
Hình 6: Hệ Mã hóa công khai
Trong cặp khóa của hệ mã hóa công khai thì một khóa đƣợc dữ bí mật (khóa riêng – private key), một khóa đƣợc công khai cho các đối tác sử dụng (pubic key).
Quá trình gửi thông điệp bí mật:
Khi ngƣời gửi muốn gửi một thông điệp cho ngƣời nhận sẽ làm nhƣ sau. + Lấy public key của người nhận mã hóa thông điệp rồi gửi cho ngƣời nhận. + Ngƣời nhận dùng private key của mình giải mã thông điệp, đọc thông tin.
Trong quá trình truyền tin có thể bị tin tặc bắt đƣợc những cũng không thể giải mã vì không có khóa private của ngƣời nhận. Chính vị vậy thông điệp đƣợc gửi đến ngƣời nhận đƣợc bảo mật, giải quyết đƣợc bài toán truyền khóa trong môi trƣờng truyền tin ở hệ mã đối xứng.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Khi máy tính ra đời, dữ liệu của máy tính có thể đƣợc copy thành nhiều bản, có thể bị thay đổi thông tin, con ngƣời luôn đặt câu hỏi liệu thông tin I có phải do chính ngƣời X tạo ra không. Câu hỏi này đã đƣợc trả lời từ khi hệ mật mã khóa đối xứng ra đời. Và hệ quả là có rất nhiều các ứng dụng nhƣ về bản quyền, về chống từ chối trách nhiệm, về việc đảm đối với thông tin, ra đời chữ ký điển tử ... Mã hóa công khai đã góp phần to lớn trong việc cải cách các thủ tục hành chính, giảm bớt giấy tờ phức tap, khó quản lý kiểm soát nâng cao hiệu quả công việc. Góp phần thúc đẩy nền kinh tế phát triển. Nhà nƣớc ta hiện đang từng bƣớc áp dụng chữ ký số trong quản lý, giao dịch.
Quá trình gửi thông điệp bảo đảm không từ chối trách nhiệm:
+ Ngƣời gửi X thông điệp dùng khóa riêng của mình để mã hóa (ký) vào thông điệp và gửi đi bản mã.
+ Một ngƣời nhận bất kỳ nào đó muốn kiểm tra thông điệp nhận đƣợc có phải do ngƣời dùng X gửi không chỉ cần lấy public key của người gửi giải mã để đƣợc thông điệp và kết luận thông điệp này do chính ngƣời X gửi.
Trong thực tế khi gửi thông điệp đảm bảo không từ chối trách nhiệm, thì nội dung của thông tin không nhất thiết phải bảo mật, có thể cần quản bá để mọi ngƣời đều biến đến. Vấn đề chính là xác định đƣợc thông tin này có đúng là do ngƣời X gửi không. Việc mã hóa và giải mã đối với mã hóa công khai chạy chậm, mất nhiều thời gian khi dữ liệu lớn. Nên thay vì ký vào dữ liệu thì ngƣời gửi ký vào bản băm của dữ liệu (bản băm có kích thƣớc xác định, thƣờng rất nhỏ).
Vì vậy trong hệ thông khi gửi dữ liệu hoặc khi đƣa dữ liệu lên hệ thống để mọi ngƣời khai thác thì để đảm bảo nguồn gốc của dữ liệu, ngƣời gửi ký vào bản băm của dữ liệu sau đó gửi bản băm đã ký cùng với dữ liệu. Ngƣời nhận sẽ kiểm tra nguồn gốc của dữ liệu bằng cách lấy public key của ngƣời
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
gửi giải mã bản băm đã đƣợc mã hóa để xác nhận có đúng ngƣời X gửi thông điệp hay không.
Hệ mã hóa công khai khắc phục đƣợc nhƣợc điểm gửi thông điệp bảo mật của hệ mã hóa đối xứng nhƣng thực tế ít dùng để mã hóa thông điệp. Do quá trình mã hóa và giải mã phải làm việc với những số nguyên tố rất lơn. Hệ mã hóa có khối lƣơng tính toán lớn. Điều này ảnh hƣởng đến tốc độ của hệ thống. Khiến chi phí để mã hóa rất cao. Do vậy đối với chức năng gửi thư bảo mật sẽ là tối ưu nếu kết hợp sức mạnh của mã hóa đối xứng để mã hóa dữ liệu , còn việc truyền khóa mã đối xứng sẽ sử dụng hệ mã công khai để truyền tới người nhận. Điều này khắc phục đƣợc nhƣợc điểm về tốc độ của mã hóa công khai cũng nhƣ khắc phục đƣợc việc truyền khóa ở mã đối xứng.
Có nhiều hệ mã hóa công khai nổi tiếng nhƣ RSA, ElGamal, DSA, mật mã đƣờng cong elliptic. Hiện nay thuật toán RSA đang đƣợc ứng dụng phổ biến trong các hệ thống bảo mật thông tin lên trong phạm vi luận văn này sẽ chủ yếu nghiên cứu hệ mã hóa AES và RSA, nghiên cứu cách kết hợp 2 hệ mã hóa để có thể gửi đƣợc thông tin bảo mật với tốc độ nhanh.