2.1.1. Khái niệm mật mã
Theo nghĩa hẹp, “mật mã” chủ yếu dùng để bảo mật dữ liệu, người ta quan niệm: Mật mã học là khoa học nghiên cứu mật mã, bao gồm: Tạo mã và Phân tích mã.
Phân tích mã là kỹ thuật, nghệ thuật phân tích mật mã, kiểm tra tính bảo mật của nó hoặc phá vỡ sự bí mật của nó. Phân tích mã còn gọi là Thám mã.
Theo nghĩa rộng, “mật mã” là một trong những công cụ hiệu quả bảo đảm an toàn thông tin nói chung: bảo mật, bảo toàn, xác thực, chống chối cãi,…
Khái niệm mã hoá thông tin
- Mã hóa là quá trình chuyển thông tin có thể đọc được (gọi là Bản rõ) thành thông tin “khó” thể đọc được theo cách thông thường (gọi là Bản mã)
Đây là một trong những kỹ thuật để bảo mật thông tin.
- Giải mã là quá trình chuyển thông tin ngược lại, từ Bản mã thành Bản rõ - Thuật toán mã hóa hay giải mã là thủ tục tính toán để mã hóa hay giải mã - Khóa mã hóa là một giá trị làm cho thuật toán mã hóa thực hiện theo cách riêng biệt sinh ra bản rõ. Thông thường khóa càng lớn (độ dài và tính ngẫu nhiên của khoá càng lớn)thì bản mã càng an toàn. Phạm vi giá trị có thể có của khóa được gọi là Không gian khóa
- Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng như làm cho rõ nó.
Hệ mã hoá được định nghĩa là bộ năm (P, C, K, E, D), trong đó: - P: là tập hữu hạn các bản rõ có thể.
- C: tập hữu hạn các bản mã có thể. - K: tập hữu hạn các khoá có thể. - E: tập các hàm lập mã.
Với khoá lập mã ke K, có hàm lập mã eke E, eke: P →C.
Với khoá giải mã kd K, có hàm giải mã dkd D, dkd: C→P, sao cho dkd(eke(x))=x, Với mọi x P. Ở đây x được gọi là bản rõ, eke(x) được gọi là bản mã.
Quá trình mã hoá và giải mã:
Bảng 2.1: Quá trình mã hóa và giải mã
Người gửi tin G muốn gửi bản tin T cho người nhận N. Để đảm báo bí mật, G mã hoá bản tin bằng khoá lập mã ke, nhận được bản mã eke(T), sau đó gửi cho N. Tin tặc có thể trộm bản mã eke(T) nhưng cũng “khó” để hiểu được bản tin gốc T nếu không có khoá giải mã kd.
Người nhận N nhận được bản mã, họ dùng khoá giải mã kd để giải mã eke(T) và nhận được bản tin gốc T=dkd(eke(T)).
2.1.2. Phân loại hệ mật mã
Hiện có 2 loại hệ mật mã chính: mã hoá khoá bí mật và mã hoá khoá công khai.
2.1.2.1. Hệ mã hoá khoá bí mật
Trong hệ thống mã hóa khoá bí mật, quá trình mã hóa và giải mã một thông điệp sử dụng cùng một mã khóa gọi là khóa bí mật (secret key) hay khóa đối xứng (symmetric key). Do đó, vấn đề bảo mật thông tin đã mã hóa hoàn toàn phụ thuộc vào việc giữ bí mật nội dung của mã khóa đã được sử dụng.
Trước đây, phương pháp mã hóa chuẩn DES được coi là tiêu chuẩn của hệ mã hóa khóa bí mật. Tuy nhiên, với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý hiện nay, phương pháp mã hóa DES đã trở nên không an toàn trong bảo mật thông tin. Do đó, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ đã quyết định chọn một chuẩn mã hóa mới với độ an toàn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của chính phủ Hoa Kỳ cũng như trong các ứng dụng dân sự. Thuật toán Rijndael do Vincent Rijmen và Joan Daeman đã được chính thức chọn trở thành chuẩn mã hóa nâng cao AES từ 02 tháng 10 năm 2000.
Bảng 2.2: Mô hình hệ thống mã hoá khoá bí mật Hệ mã hoá khoá bí mật có đặc điểm sau: Hệ mã hoá khoá bí mật có đặc điểm sau:
- Ưu điểm: Hệ mã hoá khoá bí mật mã hoá và giải mã nhanh hơn Hệ mã hoá khoá công khai.
- Hạn chế:
+ Mã hoá khóa bí mật chưa thật an toàn với lý do sau: người giải mã và người mã hoá phải có chung một khoá. Khoá phải được giữ bí mật tuyệt đối, vì biết khoá này dễ xác định được khoá kia và ngược lại.
+ Vấn đề thỏa thuận và quản lý khoá chung là khó khăn và phức tạp. Người gửi và người nhận phải luôn thống nhất với nhau về khoá. Việc thay đổi khoá là rất khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an toàn.
Mặt khác, khi người lập mã và người giải mã cùng biết chung một bí mật thì càng khó giữ bí mật.
Hệ mã hoá khoá bí mật thường được sử dụng trong môi trường mà khoá chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ và để mã hoá những bản tin lớn vì tốc độ mã hoá và giải mã nhanh hơn hệ mã hoá khoá công khai.
2.1.2.2. Hệ mã hoá khoá công khai
Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa khoá bí mật chính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp mã hóa khóa công khai giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn. Nội dung của khóa công khai (public key) không cần phải giữ bí mật như đối với khóa bí mật trong các phương pháp mã hóa bí mật. Sử dụng khóa công khai, chúng ta có thể thiết lập một quy trình an toàn để truy đổi khóa bí mật được sử dụng trong hệ thống mã hóa khoá bí mật.
biệt là phương pháp RSA, được sử dụng ngày càng nhiều trong các ứng dụng mã hóa trên thế giới và có thể xem như đây là phương pháp chuẩn được sử dụng phổ biến nhất trên Internet, ứng dụng trong việc bảo mật thông tin liên lạc cũng như trong lĩnh vực thương mại điện tử.
Có thể định nghĩa hệ mã hoá công khai như sau:
Hệ mã hoá công khai (Hệ mã hoá khoá phi đối xứng): là hệ mã hoá có khoá lập mã và khoá giải mã khác nhau (ke khác kd). Hệ mã hoá này được gọi là Hệ mã hoá khoá công khai vì:
- Khoá lập mã cho công khai, gọi là khoá công khai.
- Khoá giải mã: giữ bí mật, còn gọi là khoá riêng hay khoá bí mật.
Một người bất kỳ có thể dùng khoá công khai để mã hoá bản tin nhưng chỉ có người nào có đúng khoá giải mã thì mới có khả năng đọc được bản rõ.
Bảng 2.3: Mô hình hệ thống mã hoá với khoá công khai Hệ mã hoá khoá công khai có đặc điểm sau: Hệ mã hoá khoá công khai có đặc điểm sau:
- Về ưu điểm:
+ Hệ mã hoá công khai có thuật toán được viết một lần, công khai cho nhiều lần dùng, cho nhiều người dùng mà họ chỉ cần giữ bí mật khoá riêng của mình.
+ Khi biết các tham số ban đầu của hệ mã hoá, việc tính ra cặp khoá công khai và bí mật phải là “dễ” tức là trong thời gian đa thức.
Người gửi có bản rõ P và khoá công khai thì “dễ” tạo ra bản mã C.
Người nhận có bản mã C và khoá bí mật thì “dễ” giải được thành bản rõ P. + Người mã hoá dùng khoá công khai, người giải mã giữ khoá bí mật. Khả
năng lộ khoá bí mật khó hơn vì chỉ một người giữ gìn. Nếu thám mã chỉ biết khóa công khai thì chúng phải đương đầu với bài toán “rất khó” (thường là lớp bài toán strong hard).
+ Nếu thám mã biết khoá công khai và bản mã C thì việc tìm ra bản rõ P cũng là bài toán “khó”, số phép thử là vô cùng lớn, không khả thi.
- Về hạn chế: hệ mã hoá công khai có quá trình mã hoá và giải mã chậm hơn hệ mã hoá khoá đối xứng.
Hệ mã hoá khoá công khai thường được sử dụng chủ yếu trên các mạng công khai như Internet, khi mà việc trao chuyển khoá bí mật tương đối khó khăn.
Đặc trưng nổi bật của hệ mã hoá khoá công khai là khoá công khai và bản mã đều có thể gửi đi trên một kênh truyền tin không an toàn. Có biết cả khoá công khai và bản mã thì thám mã cũng không dễ khám phá bản rõ. Nhưng vì có tốc độ mã hoá và giải mã chậm nên hệ mã hoá khoá công khai chỉ dùng để mã hoá những bản tin ngắn, ví dụ như mã hoá khoá bí mật gửi đi.