Mật mã học là khoa học nghiên cứu các kỹ thuật che giấu thông tin. Mật mã học gắn liền với quá trình mã hoá và giải mã hoá. Quá trình mã hoá gắn với cách thức chuyển đổi thông tin từ dạng này sang dạng khác, cụ thể, từ dạng đọc được (văn bản trơn) sang dạng không thể đọc (văn bản mã hoá) nếu không biết các kiến thức bí mật (khoá mã hoá). Quá trình giải mã gắn liền với cách thức chuyển đổi thông tin từ dạng không thể đọc được (văn bản mã hoá) sang dạng có thể đọc được (văn bản trơn) dựa trên thông tin về khoá giải mã.
Mục đích chính của mã hóa dữ liệu là nhằm có được một biểu diễn khác của bản tin/tệp tin, thuận tiện và an toàn trong việc truyền dữ liệu và lưu trữ dữ liệu. Các kỹ thuật nén dữ liệu cũng được coi là một trường hợp mã hóa, với mục đích giảm kích thước của tệp tin ban đầu, thường là tệp ảnh, âm thanh, video,… Trong lĩnh vực thông tin liên lạc, việc mã hóa còn nhằm mục đích tạo ra bản tin/tệp tin mới với những thông tin phụ/bổ trợ, nhằm đảm bảo việc truyền tin được chính xác hơn.
Mật mã là thuật toán để mật mã hoá và giải mật mã. Hoạt động chính xác của mật mã được kiểm tra bởi các khoá, một đoạn thông tin bí mật nào đó cho phép tuỳ biến cách thức tạo ra văn bản.
Các khái niệm chính được đề cập trong hệ thống mật mã khái quát gồm có:
- Văn bản trơn (plaintext): là văn bản thông tin nguyên gốc chưa được mã hoá.
- Văn bản mã hoá (cripertext): tức là văn bản thông tin đã được mã hoá.
- Thuật toán mã hoá (encriphering algorithm): là các giao thức hay hướng dẫn giúp chuyển đổi văn bản trơn thành văn bản mã. Đối với các hệ thống mật mã truyền thống, chỉ có người gửi thông tin mới biết được thuật toán mã, tuy nhiên đối với các hệ thống mật mã hoá sử dụng khoá công khai (Public Key Code-PKC). tất cả mọi người đề có thể biết thuật toán mã hoá mà không ảnh hưởng tiêu cực đến an ninh của hệ thống.
- Khoá mã hoá (enciphering key): là một hoặc nhiều đối tượng (thường là các con số hoặc chỉ dẫn quan trọng nào đó) được dùng trong việc mã hoá văn bản trơn. Ngoại trừ trong hệ thống PKC, để đảm bảo bí mật an toàn thì khoá mã hoá thường chỉ được người gửi biết.
- Thuật toán giải mã (deciphering algorithm): là các giao thức giúp chuyển đổi văn bản mã hoá thành văn bản. Để đảm bảo tính bí mật, chỉ người nhận thông tin mới biết được thuật toán giải mã.
- Khoá giải mã (deciphering key): là một hoặc nhiều đối tượng (thường là các con số hay hướng dẫn quan trọng nào đó) được dùng trong việc giải mã văn bản bị mã hoá. Để bảo đảm bí mật, chỉ có người nhận thông tin mới biết được khoá giải mã.
- Sản phẩm mật mã (cryptography product): gồm các hệ thống thiết bị, mô đun, mạch tích hợp và các chương trình phần mềm mã hoá chuyên dụng được chế tạo để bảo vệ thông tin giao dich điện tử và lưu trữ dưới dạng số, trong đó sử dụng thuật toán mã đối xứng và thuật toán mã không đối xứng.
Khoá đối xứng là những thuật toán hoặc sử dụng một khoá cho việc mã hoá và giải mật mã hoặc sử dụng khoá dùng để giải mã có thể dễ dàng tính được khoá đã dùng để mã. Khoá đối xứng có thể được chia thành mật mã khối và mật mã luồng. Mật mã luồng mã hoá một bit tại một thời điểm, ngược lại với mật mã khối là phương pháp cho phép thực hiện trên một nhóm các bit (khối) với độ dài nào đó trong một lần. Mật mã khối có thể được thực hiện như là mật mã luồng tự đồng bộ (chế độ CFB). Tương tự, mật mã luồng có thể làm để nó hoạt động trên các khối riêng rẽ của văn bản trơn tại một thời điểm. Các mật mã khối như DES, IDEA và AES, và mật mã luồng như RC4, là những loại mật mã khóa đối xứng nổi tiếng nhất.
Các nền tảng mã hóa khác đôi khi cũng được phân loại như là mã hóa khóa đối xứng:
- Các hàm băm mật mã sản sinh ra sự băm thông tin. Trong khi nó có thể rất dễ tính toán nhưng nó lại rất khó để đảo ngược (hàm một chiều). MD5 và SHA-1 là các hàm băm nổi tiếng nhất.
- Các MAC (mã xác thực thông tin). được biết đến như là hàm băm có khóa. Hàm băm có khoá tương tự như các hàm băm, ngoại trừ việc cần có khóa để tính toán việc băm. Như tên gọi của nó, chúng được sử dụng rộng rãi để xác thực thông tin. Chúng thông thường được xây dựng từ các nền tảng khác, chẳng hạn từ mật mã khối, hàm băm không khóa hay mật mã luồng.
Yếu điểm lớn nhất của các thuật toán mã hóa khóa đối xứng nằm ở chỗ khi trao đổi các thông tin bí mật cần phải chia sẻ khóa bí mật giữa người gửi và người nhận. Khóa bí mật cần phải được trao đổi theo một cách thức an toàn, mà không phải bằng các phương thức thông thường vẫn dùng để liên lạc. Điều này thông thường là bất tiện, vì vậy mật mã hóa khóa công khai (hay khóa bất đối xứng) được đưa ra như là một giải pháp thay thế. Trong mật mã hóa khóa công khai có hai khóa được sử dụng, là khóa công khai (public key) và khóa bí mật (private key ). trong đó khóa công khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã (cũng có thể thực hiện ngược lại). Rất khó để có thể thu được khóa bí mật từ khóa công khai. Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công khai của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắc chắn rằng chỉ có họ có thể giải mật mã các thông điệp được mật mã hóa bằng khóa đó.
Mật mã hóa bất đối xứng cũng cung cấp cơ chế cho chữ ký số, là cách thức để xác minh với độ bảo mật cao (giả thiết cho rằng khóa cá nhân liên quan được đảm bảo giữ an toàn) rằng thông điệp mà người nhận đã nhận được là chính xác được gửi đi từ phía người gửi mà họ yêu cầu. Các chữ ký như vậy thông thường (theo luật định hay được suy diễn mặc định) được coi là chữ ký số tương đương với chữ ký thật trên các tài liệu được in ra giấy. Xét về phương diện kỹ thuật, chúng lại không phải vậy do không có sự tiếp xúc thực tế mà cũng không có liên hệ giữa "người ký" và "chữ ký". Sử dụng hợp thức các thiết kế có chất lượng cao và các bổ sung khác tạo ra khả năng có được độ an toàn cao, làm cho chữ ký điện tử vượt qua phần lớn các chữ ký thật cẩn thận nhất về mức độ thực của nó (khó bị giả mạo hơn). Các ví dụ về các giao thức chữ ký số hóa bao gồm DSA và chữ ký ElGamal. Các chữ ký số hóa là trung tâm trong các hoạt động của hạ tầng khóa công cộng (PKI) và rất nhiều hệ thống an ninh mạng (ví dụ Kerberos, phần lớn các mạng riêng ảo (VPN) v. v). Giống như mật mã hóa, các thuật toán lai ghép thông thường được sử dụng trong thực tế, thay vì ký trên toàn bộ chứng từ thì hàm băm mật mã hóa của chứng từ được ký.
Những dạng sớm nhất của cách viết bí mật (ngày nay gọi chung là mật mã hóa cổ điển) chỉ cần có bút và giấy. Hai phương pháp chính của mật mã cổ điển là mật mã hoán vị, trong đó sắp xếp lại trật tự các chữ cái của thông điệp, và mật mã thay thế, trong đó thay thế có hệ thống các chữ cái hay các nhóm chữ cái bằng các chữ cái hay các nhóm chữ cái khác. Văn bản được mật mã hóa bằng mật mã cổ điển có xu hướng lộ ra các thông tin thống kê nhất định về văn bản thường. Bằng cách sử dụng các thông tin này, mật mã cổ điển rất dễ bị dò ra (vd. bằng phân tích tần suất).
Các thiết bị và các kỹ thuật khác nhau đã được sử dụng để mật mã hóa. Một trong những thiết bị sớm nhất là gậy mật mã (tiếng Hy Lạp: ). Trong nửa đầu thế kỷ XX, một số thiết bị cơ khí đã được phát minh để thực hiện mật mã hóa, bao gồm rotor machines; nổi tiếng nhất là máy Enigma được người Đức sử dụng trong Đại chiến thế giới lần thứ II. Mật mã thực hiện bằng các máy móc này đã tăng độ phức tạp lên đáng kể đối với công việc phân tích mã.
Sự ra đời của máy tính kỹ thuật số và điện tử học cho phép triển khai các kỹ thuật mật mã hết sức phức tạp. Đặc trưng của mật mã máy tính là chúng thực hiện trên các chuỗi nhị phân, không giống như trong các mô hình mật mã hóa cổ điển và cơ học (chỉ sử dụng bảng chữ cái với khoảng 26 ký tự-phụ thuộc vào từng ngôn ngữ). Mật mã máy tính cũng có khả năng chịu đựng việc phân tích mật mã tốt hơn; rất ít các mật mã như thế dễ bị tổn thương chỉ bởi kiểu tấn công biết bản mã.
Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại được bắt đầu trong cộng đồng mở kể từ những năm thập niên 1970 với các chi tiết kỹ thuật của DES (viết tắt trong tiếng Anh của Data Encryption Standard tức Tiêu chuẩn Mật mã hóa Dữ liệu) và sự phát minh ra mật mã khóa công khai RSA. Kể từ đó, mật mã hóa đã trở thành công cụ được sử dụng rộng rãi trong liên lạc và bảo mật máy tính.
Mật mã học là một lĩnh vực liên ngành được tạo ra từ một số lĩnh vực khác. Các dạng cổ nhất của mật mã hoá chủ yếu liên quan đến các kiểu mẫu trong ngôn ngữ. Trong những năm gần đây, tầm quan trong của mật mã hoá được thay đổi và gắn liền nhiều hơn với toán học, cụ thể là toán học rời rạc, bao gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê và tổ hợp. Mật mã hoá hiện đại cung cấp cơ chế cho nhiều hoạt động khác như chứng thực khoá công khai, chữ ký số, bầu cử điện tử, hay tiền điện tử hơn là việc chỉ giữ bí mật thông tin.
Mật mã học cung cấp các công cụ thường xuyên được sử dụng trong an ninh máy tính và mạng cũng như được sử dụng để bảo vệ các thông tin quan trọng chẳng hạn trong các lĩnh vực tình báo, quân sự hay ngoại giao cũng như trong các lĩnh vực về kinh tế, tài chính hay chính trị. Trong bối cảnh bùng nổ thông tin như hiện nay, nhu cầu trao đổi thông tin và các phương tiện truyền đưa thông tin phát triển một cách nhanh chóng. Cùng với sự phát triển đó, tính bảo mật và an toàn thông tin ngày càng trở lên cấp thiết. Điều đó cho thấy triển vọng rất lớn và tầm quan trọng của mật mã học trong môi trường công nghệ thông tin đang phát triển hiện nay cũng như trong tương lai.
Tài liệu tham khảo[sửa]
- Phan Đình Diệu. Lý thuyết mật mã và an toàn thông tin, NXB Đại học quốc gia Hà Nội, 2002.
- Thái Thanh Tùng. Giáo trình Mật mã học và Hệ thống thông tin an toàn, NXB Thông tin và Truyền thông, 2011.
- J. Menezes, P. C. van Oorschot, and S. A. Vanstone, Handbook of Applied Cryptography. ISBN 0-8493-8523-7.
- Br. Schneier, Applied Cryptography, 2nd edition, Wiley, 1996, ISBN 0-471-11709-9.