Chương 1: Tổng quan về mật mã và hộp thế Trong chương này sẽ giới thiệu tổng quan về hệ mật, hệ mật mã khối và chỉ ra được vai trò của hộp thế (S-box) trong mật mã khối. Trình bày về hàm Boolean và các tính chất mật mã của hàm Boolean, các tính chất mật mã của hộp thế. Chương 2: Nghiên cứu phương pháp tạo hộp thế động (Pure Dynamic) Nội dung của chương 2 là giới thiệu, tìm hiểu về tổng quan Rijndael S-box. Đồng thời tập trung nghiên cứu phương pháp tạo hộp thế động dựa trên ánh xạ hỗn loạn rời rạc một chiều pure.
Chương 3: Xây dựng chương trình thực thi Chương 3 sẽ bao gồm các nội dung: cài đặt chương trình thử nghiệm tạo Sbox động dựa trên ánh xạ hỗn loạn rời rạc một chiều pure, áp dụng thuật toán vào mã hóa và giải mã AES. TỔNG QUAN VỀ MẬT MÃ VÀ HỘP THẾ 1. Tổng quan về hệ mật 1. Định nghĩa Hệ mật mã: Hệ mật mã được định nghĩa là một bộ năm (𝑃, 𝐶 , 𝐾 , 𝐸 , 𝐷), trong đó : [4] 1.
𝑃 là tập hợp hữu hạn các bản rõ 2. 𝐶 là tập hữu hạn các bản mã 3. 𝐾 là tập hữu hạn các khóa 4. 𝐸 là tập các hàm mã hóa 5.
𝐷 là tập các hàm giải mã Với mỗi 𝑘 ∈ 𝐾, có một hàm mã hóa 𝑒𝑘 ∈ 𝐸, 𝑒𝑘 : 𝑃 → 𝐶 và một hàm giải mã 𝑑𝑘 ∈ 𝐷, 𝑑𝑘 : 𝐶 → 𝑃 sao cho 𝑑𝑘 (𝑒𝑘 (𝑥)) = 𝑥, ∀ 𝑥 ∈ 𝑃 Bản rõ: Chứa các xâu ký tự gốc, thông tin trong bản rõ là thông tin cần mã hoá để giữ bí mật. Bản mã: Chứa các ký tự sau khi đã được mã hoá, mà nội dung được giữ bí mật. Mã hóa: là quá trình sử dụng những quy tắc được quy định trong một hệ mã để biến đổi thông tin ban đầu (bản rõ) thành bản mã. Giải mã: là quá trình ngược lại với mã hóa, tức là sử dụng những quy tắc được quy định trong hệ mã để biến đổi nội dung bản mã về thông tin ban đầu.
Khoá K: là thông tin tham số dùng để mã hoá và giải mã chỉ có người gửi và nguời nhận biết. Khóa là độc lập với bản rõ và có độ dài phù hợp với yêu cầu bảo mật. Quá trình mã hoá và giải mã được thể hiện trong hình 1.1 Qúa trình mã hóa và giải mã thông tin Thám mã là nghiên cứu cách phá các hệ mật nhằm phục hồi bản rõ ban đầu từ bản mã, nghiên cứu các nguyên lí và phương pháp giải mã mà không biết khóa. Thám mã có thể chia làm 2 loại: Loại thám mã tích cực: là việc thám mã sau đó tìm cách làm sai lạc các dữ liệu truyền, nhận hoặc các dữ liệu lưu trữ phục vụ mục đích của người thám mã.
Loại thám mã thụ động: là việc thám mã để có được thông tin về bản rõ phục vụ mục đích của người thám mã. Vai trò của hệ mật Các ứng dụng của mật mã học trong an toàn thông tin rất đa dạng và phong phú, tùy vào tính đặc thù của mỗi hệ thống bảo vệ thông tin mà ứng dụng sẽ có các tính năng với đặc trưng riêng. Mã hóa đảm bảo những tính chất sau trong an toàn thông tin: Tính bí mật (confidentiality/privacy): đảm bảo thông tin chỉ được tiết lộ cho những ai được phép. Tính toàn vẹn (integrity): tính chất này đảm bảo thông tin không thể bị thay đổi mà không bị phát hiện.
Tính chất này không đảm bảo thông tin không bị thay đổi, nhưng một khi nó bị nghe lén hoặc thay đổi thì người nhận được thông tin có thể biết được là thông tin đã bị nghe lén hoặc thay đổi. Các hàm băm một chiều thường được dùng để đảm bảo tính toàn vẹn cho thông tin. 2 Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng minh đúng họ. Người ta có thể dụng một password, một challenge dựa trên một thuật toán mã hóa hoặc một bí mật chia sẻ giữa hai người để xác thực.
Sự xác thực này có thể thực hiện một chiều (one-way) hoặc hai chiều (mutual authentication). Tính không chối bỏ (non-repudiation): người gửi hoặc nhận sau này không thể chối bỏ việc đã gửi hoặc nhận thông tin. Thông thường điều này được thực hiện thông qua một chữ ký điện tử (electronic signature). Phân loại hệ mật Dựa vào khóa mã hóa và cách thức tiến hành hệ mật được phân loại thuật toán mật mã như trong hình 1.2 Sơ đồ phân loại hệ mật Hàm hash (hàm băm): Trong ngành mật mã học, hàm băm có một số tính chất bảo mật nhất định (xác định, một chiều…) để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn như chứng thực (authentication) và kiểm 3 tra tính nguyên vẹn của thông điệp (message integrity).
Một hàm băm nhận đầu vào là một xâu ký tự có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital signature). Mật mã đối xứng: Là một loại sơ đồ mã hóa trong đó một khóa giống nhau sẽ vừa được dùng để mã hóa, vừa được dùng để giải mã các tệp tin. Thực tế thì hai khóa (mã hóa, giải mã) có thể khác nhau, trong trường hợp này thì một khóa nhận được từ khóa kia bằng phép tính toán đơn giản. Mật mã đối xứng thì được chia làm hai loại: mã dòng và mã khối.
- Mã dòng: Mã hóa dòng làm việc trên từng bit của dòng dữ liệu và quá trình biến đổi thay đổi theo quá trình mã hóa. - Mã khối: Mã hóa khối là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định (block) với những chuyển đổi xác định. Chẳng hạn một thuật toán mã hóa khối có thể xử lý khối 128 bit đầu vào và biến nó thành khối 128 bit đầu ra. Quá trình chuyển đổi còn sử dụng thêm một tham số nữa: khóa bí mật để cá biệt hóa quá trình.
Việc giải mã cũng diễn ra tương tự: xử lý khối mã hóa 128 bit cùng với khóa để trả về khối 128 bit bản rõ ban đầu. Mật mã bất đối xứng: Có thể hiểu là người ta dùng hai khoá khác nhau để khoá và mở khóa thông tin bí mật. Public key sẽ được công khai, và được gửi đi đến đối tượng cần mã hoá thông tin, còn private key được giữ bí mật và chỉ cung cấp cho cho những ai được phép. Chữ ký số : Là phương pháp ký một bức điện dưới dạng điện tử, để đảm bảo tính nguyên vẹn và xác thực.
Như trong mật mã bất đối xứng, chữ ký điện tử cũng dùng thuật toán mật mã với hai khóa, khóa công khai tính dễ dàng từ khóa bí mật, còn khóa bí mật thì rất khó hầu như không tính được từ khóa công khai. Nhưng khác với mật mã bất đối xứng là quá trình ký bức điện dùng khóa mật, còn quá trình kiểm tra bức điện dùng khóa công khai. Và khóa mật ngoài chủ của bức điện thì không ai biết được, nhờ tính chất này mà chữ ký điện tử có chức năng đảm bảo tính chống chối bỏ của thông tin. Một số thuật toán mật mã điển hình 1.
Giới thiệu chung Các hệ mật mã cổ điển có đặc điểm chung là từng ký tự của bản rõ được mã hoá tách biệt. Điều này làm cho việc thám mã trở lên dễ dàng hơn. Chính vì vậy, trên thực tế người ta hay dùng một kiểu mật mã khác, trong đó từng khối ký tự của bản rõ được mã hóa cùng một lúc như là một đơn vị mã hoá đồng nhất, gọi là mã khối. Quá trình mã hoá bao gồm 2 thuật toán: Mã hoá - ký hiệu 𝐸 và giải mã - ký hiệu 𝐸 −1.
Cả 2 thuật toán đều tác động lên một khối đầu vào 𝑛 bit sử dụng một khoá k bit để cho ra một khối đầu ra n bit. Độ dài của khối thông tin, ký hiệu là n, thông thường là cố định ở 64 hoặc 128 bit. Một số thuật toán có độ dài khối thay đổi nhưng không phổ biến. Tính đến trước những năm 1990 thì độ dài 64 bit thường được sử dụng.
Từ đó trở về sau thì khối 128 bit được sử dụng rộng rãi hơn. Trong các chế độ mã hoá khối thì người ta thường phải bổ sung thêm một số bit cho văn bản (padding) để văn bản chứa số nguyên lần các khối. Hầu hết các thuật toán mã hóa khối sử dụng lặp đi lặp lại các hàm đơn giản. Mỗi chu kỳ lặp được gọi là một vòng và thông thường các thuật toán có từ 4 tới 32 vòng.
Các thành phần sử dụng trong thuật toán là các hàm toán học, các hàm logic (đặc biệt là hàm XOR), hộp thế (S-box) và các phương pháp hoán vị. Các loại mã khối Có thể kể ra một số hệ mã sau: DES (1977), 3-DES (1985), IDEA (1990), GOST, AES (2001)… Trong đó DES được sử dụng rộng rãi và có tầm quan trọng vô cùng to lớn. DES có vai trò bảo mật thông tin trong quá trình truyền và lưu trữ thông tin. DES cũng được sử dụng để kiểm tra tính xác thực của mật khẩu truy cập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn thông, .), hay tạo và kiểm tính hợp 5 lệ của một mã số bí mật (thẻ internet, thẻ điện thoại di động trả trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ payphone.
Tuy nhiên DES cũng có những điểm yếu nhất định của nó, đó chính là tính bù và khoá yếu [4]. - Tính bù: Ký hiệu 𝑢̅ là phần bù của u (ví dụ: 0100101 và 1011010 là bù của nhau) thì DES có tính chất sau: 𝑦 = 𝐷𝐸𝑆𝑧 (𝑥) ⇒ 𝑦 = 𝐷𝐸𝑆𝑧 (𝑥). Cho nên nếu biết MÃ 𝑦 được mã hóa từ TIN 𝑥 với khoá z thì ta suy ra 𝑦 được mã hoá từ TIN 𝑥 với khoá 𝑧. Tính chất này chính là một điểm yếu của DES bởi vì nhờ đó kẻ định có thể loại trừ một nửa số khoá cần phải thử khi tiến hành phép thử - giải mã theo kiểu tìm kiếm vét cạn không gian khoá.