Chương 1 TỔNG QUAN VỀ HÀM HỖN LOẠN VÀ ẢNH SỐ 1.1 Giới thiệu Mật mã được xem như một kỹ thuật trong lĩnh vực an toàn thông tin. Nó được dùng cho mục đích giữ kín thông tin và trong các trường hợp liên quan đến xác thực như chữ ký số. Những năm gần đây, thực tế ứng dụng trong môi trường mạng nhiều người dùng đòi hỏi mật mã phải đáp ứng được tính đa dạng của dữ liệu trên quy mô rộng lớn và được truyền tải trên các thiết bị khác nhau [13, 14]. Chính vì vậy, các hướng nghiên cứu về mật mã cũng được phát triển nhằm đa dạng hóa mật mã phù hợp cho các nhu cầu thực tế.
Với sự phát triển về công nghệ ảnh và nhu cầu sử dụng hình ảnh ngày càng tăng của con người dẫn đến lượng dữ liệu ảnh chiếm phần lớn trong các loại dữ liệu do người dùng sinh ra. Từ đó, mật mã cho ảnh rất được quan tâm trong những năm gần đây. Dữ liệu ảnh là dữ liệu có đặc trưng khác với dữ liệu thông thường bởi giá trị của các điểm ảnh lân cận nhau là gần giống nhau. Hay nói cách khác, các điểm ảnh gần nhau có tương quan lớn.
Mặt khác, dữ liệu ảnh là dữ liệu dạng khối. Điều này cần có các nghiên cứu để tìm ra các thuật toán mật mã sao cho phù hợp với loại dữ liệu ảnh là rất cần thiết. Trong Chương này, phần đầu nói về tổng quan về mật mã và phân loại; phần sau trình bày ảnh và các đặc trưng dữ liệu của ảnh, các hệ hỗn loạn và khả năng ứng dụng của chúng vào lĩnh vực mật mã.2 Mật mã hiện đại và phân loại Mật mã hiện đại làm việc trên các chuỗi bit. Nó dựa vào các thuật toán được biết công khai để mã hóa thông tin.
Tính chất mật đạt được chủ yếu dựa vào khóa mật được dùng trong thuật toán. Khó khăn trong tính toán các thuật toán, sự thiếu thông tin về khóa mật,. làm thất bại trong việc tấn công để thu nhận được thông tin cho dù có biết về giải thuật mã. Như vậy, mật mã hiện đại chỉ yêu cầu giữ kín khóa mật, còn lại các thông tin khác là công khai.1 Định nghĩa Mật mã hiện đại được định nghĩa là một hệ gồm 5 tham số (P, C, K, E, D) với ý nghĩa như sau [15]: • P (plaintext): Tập bản rõ.
Tập hợp các bản rõ là tập hữu hạn các bản tin gốc cần mật mã. Nó là đầu vào cho quá trình mật mã và là đầu ra ở quá trình giải mật mã thành 7 Mật mã học Mật mã hóa Phân tích mã/thám mã Hình 1.1: Phân loại nghiên cứu của mật mã học. Tập bản mã là tập hợp hữu hạn các bản tin được tạo ra ở đầu ra của quá trình mật mã. • K (Key): Tập khóa mật.
Tập khóa mật cũng là tập hợp hữu hạn các khóa, mà mỗi thành phần của nó được dùng như dữ liệu đầu vào của quá trình mật mã và giải mã. Nó được dùng để mật mã bản rõ thành bản mã và giải bản mã thành bản rõ. • E (Encryption): Tập qui tắc mật mã. Tập hữu hạn qui tắc thực hiện mật mã nhằm biến đổi đầu vào thành bản mã.
• D (Decryption): Tập qui tắc giải mật mã. Tập các qui tắc được dùng để thực hiện tái tạo lại bản rõ từ bản mã với sự góp thông tin từ khóa mật. Đối với mỗi khóa K ∈ K, ta có qui tắc mã hóa EK ∈ E và tương ứng với nó là một qui tắc giải mã DK ∈ D để có ( EK : P → C, (1. Hay với mọi bản rõ P , ta có DK (EK (P )) = P.2) Điều này cho thấy rằng việc giải mật đúng phải trả về bản rõ được khôi phục.2 Phân loại mật mã Có một số cách phân loại trong mật mã như sau: • Phân loại nghiên cứu về mật mã học được thấy trong Hình 1.1 gồm mật mã và phân tích mã hay thám mã.
Mật mã là đi làm về đảm bảo an toàn cho dữ liệu. Nói đến mật mã là nói đến thiết kế các cơ chế mã dựa trên nền tảng là các giải thuật. Ngược lại với mật mã là thám mã, thám mã đi xem xét cơ chế mật mã với mục đích chỉ ra những khiếm khuyết liên quan đến an toàn thông tin và đồng thời kiểm tra được khả năng của hệ mật mã được thiết kế. 8 (a) Mật mã khóa đối xứng (b) Mật mã khóa bất đối xứng Hình 1.2: Mật mã khóa đối xứng và bất đối xứng.
• Phân loại theo cách sử dụng khóa mật ta có mật mã khóa công khai (hay mật mã bất đối xứng) và mật mã khóa riêng tư (hay mã đối xứng). Hệ mật mã đối xứng là hệ mật mã có khóa mật được dùng cho phía mật mã giống với khóa mật dùng ở bên giải mật mã [15]. Khóa mật này được giữ kín nhằm đảm bảo an toàn thông tin. Các hệ mật mã đối xứng gồm AES, DES, 3DES.
Ngược lại với mật mã đối xứng là mật mã bất đối xứng. Hệ mật mã bất đối xứng được hiểu là khóa mật của bên mật mã khác với khóa mật được dùng ở bên giải mật mã. Một tên gọi khác của hệ mật mã này là mật mã khóa công khai. Hai khóa được dùng cho mật mã và giải mật mã được gọi là khóa riêng tư (private key) và khóa công khai (public key).
Thông thường, khóa công khai được công bố mở cho bên thực hiện mật mã, và khóa riêng tư được dùng để giải mật ở bên khôi phục thông tin. Hệ mật mã bất đối xứng nổi tiếng gồm ElGamal, RSA. Sự khác nhau giữa hệ mật mã đối xứng và bất đối xứng được thấy trong Hình 1. Với hệ mật mã đối xứng, khóa mật cần phải được giữ kín.
Tuy nhiên, trong điều kiện khoảng cách, khóa mật cần phải được gửi từ bên mật mã sang bên giải mật qua môi trường với thuật toán trao đổi khóa như là Diffie-Hellman. Trong điều kiện thực tế của truyền thông, một hệ thống được sinh ra để quản lý và 9 Dữ liệu bản rõ Li-1 Ri-1 Cộng khóa Thay thế Khóa Ki Hoán vị F(.) Trộn tuyến nh Dữ liệu bản mã Li Ri (a) Cấu trúc Unified (b) Cấu trúc Feistel Hình 1.3: Phân loại mật mã theo cấu trúc. phân phối khóa được hình thành (PKI) cho hệ mật mã khóa công khai. Luận án này không đề cập đến hệ thống quản lý và phân phối khóa.
• Phân loại dựa vào cách thức tiến hành mã hóa: Ta có mật mã dòng (stream cipher) và mật mã khối (block cipher). Với mật mã dòng, luồng dữ liệu được di chuyển liên tục trong quá trình mật mã và giải mã. Luồng dữ liệu được quan tâm là luồng bit kết hợp với phép toán logic XOR. Hệ mật mã luồng nổi tiếng là RC4, A5/1, A5/2.
Ngược lại, mật mã khối thực hiện trên một khối dữ liệu và trong quá trình thực hiện thì khối dữ liệu này được giữ tĩnh. • Phân loại mật mã khối theo cấu trúc ta có cấu trúc Feistel và cấu trúc Unified như được thấy ở Hình 1. Cấu trúc Fiestel thực hiện chia dữ liệu thành hai nửa rồi mã hóa, sau đó đảo các nửa này. Cấu trúc Unified hay còn gọi là cấu trúc SPN thực hiện qua nhiều bước mà ở đó điển hình nhất là có bước hoán vị (permutation) và bước thay thế (substitution).
Quá trình mật mã có thể được lặp lại nhiều lần. • Phân loại mật mã theo nền tảng tiếp cận ta có một số cách tiếp cận như đưa ra ở Hình 1. Ở đó, cách tiếp cận dựa vào tính chất phức tạp của đặc tính động của hàm hỗn loạn được xem như là hướng tiếp cận mới trong hai thập kỷ gần đây. • Phân loại theo đơn vị dữ liệu được thực hiện trong quá trình mã hóa như được thấy trong Hình 1.
Dữ liệu được mã hóa có đơn vị là byte thường được thấy trong các hệ thống máy tính. Dữ liệu dạng bit thường được thấy với các mật mã luồng và trên các phần cứng số. Mật mã với đơn vị dữ liệu là chữ số được đề xuất gần đây [16]. 10 Mật mã học Mật mã Mật mã truyền thống Mật mã lượng tử Mật mã elliptic hỗn loạn Dựa vào các tính chất Dựa vào tính chất phức Dựa vào phương trình Dựa vào tính chất của động của hàm hỗn loạn tạp của số học sóng đường cong elliptic Hình 1.4: Phân loại theo cơ sở nền tảng.
Mật mã học Mức bit Mức số (digit) Mức byte/ký tự 2|1|5 a, b, c 100100110 0|3|6 Hình 1.5: Phân loại theo đơn vị dữ liệu được mã hóa.3 Hệ thống hỗn loạn Trong mật mã hỗn loạn, các hàm hỗn loạn được dùng để mang lại lợi ích bảo mật. Trong thực tế, các hệ thống hỗn loạn được chia thành hai loại gồm liên tục theo thời gian và rời rạc theo thời gian. Hệ hỗn loạn liên tục theo thời gian có biến trạng thái hỗn loạn là một hàm theo thời gian, X(t). Ngược lại, các hàm hỗn loạn rời rạc theo thời gian là các hàm được lặp để sinh ra các giá trị, Xn.
Các hàm hỗn loạn này được ứng dụng vào nhiều lĩnh vực khác nhau, trong đó có mật mã.1 Hệ hỗn loạn liên tục theo thời gian Với các hệ liên tục theo thời gian được diễn tả bởi hệ phương trình vi phân như sau: dX = F (X), (1.3) dt trong đó, X = {xi , xi ∈ R, i = 1.n} là véctơ biểu diễn n biến trạng thái của hệ, t là thời gian.) là hàm không chứa thành phần thời gian t thì hệ hỗn loạn được gọi là hệ hỗn loạn tự trị, ngược lại ta có hệ hỗn loạn không tự trị. Các hàm hỗn loạn liên tục theo thời gian nổi tiếng như Chua’s, Lorenz, Rossler,. Các hệ liên tục theo thời gian ít được dùng trực tiếp cho mật mã khối bởi việc giải các phương trình vi phân cần nhiều tài nguyên tính toán. Một mặt khác, các hệ hỗn loạn liên tục theo thời gian có thể được mô tả dễ dàng hoặc có thể được quan sát thấy theo một số cách khác nhau, như trên mạch 11 điện tử tương tự [17], trên laser bán dẫn [18], hoặc trên các hệ cơ khí [19].
Nhưng thực tế, hệ mật mã liên tục theo thời gian được dùng trong các mô hình nhằm đảm bảo truyền thông bảo mật. Cho dù có khả năng sử dụng các hệ liên tục theo thời gian vào mục đích mật mã, nhưng chúng không được cộng đồng nghiên cứu quan tâm cho mật mã dữ liệu khối.