1. Trang chủ
  2. » Công Nghệ Thông Tin

thuật toán mã hóa và ứng dụng p1

49 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 630,63 KB

Nội dung

Lời giới thiệu Mật mã (Cryptography) là ngành khoa học là ngành nghiên cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo vệ thông tin [44]. Đây là ngành khoa học quan trọng, có nhiều ứng dụng trong đời sống – xã hội.

Lời giới thiệu Mật mã (Cryptography) ngành khoa học ngành nghiên cứu kỹ thuật toán học nhằm cung cấp dịch vụ bảo vệ thông tin [44] Đây ngành khoa học quan trọng, có nhiều ứng dụng đời sống – xã hội Khoa học mật mã đời từ hàng nghìn năm Tuy nhiên, suốt nhiều kỷ, kết lĩnh vực không ứng dụng lĩnh vực dân thông thường đời sống – xã hội mà chủ yếu sử dụng lĩnh vực quân sự, trị, ngoại giao Ngày nay, ứng dụng mã hóa bảo mật thơng tin sử dụng ngày phổ biến lĩnh vực khác giới, từ lĩnh vực an ninh, quân sự, quốc phòng…, lĩnh vực dân thương mại điện tử, ngân hàng… Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Các kết khoa học mật mã ngày triển khai nhiều lĩnh vực khác đời sống – xã hội, phải kể đến nhiều ứng dụng đa dạng lĩnh vực dân sự, thương mại Các ứng dụng mã hóa thơng tin cá nhân, trao đổi thông tin kinh doanh, thực giao dịch điện tử qua mạng trở nên gần gũi quen thuộc với người Cùng với phát triển khoa học máy tính Internet, nghiên cứu ứng dụng mật mã học ngày trở nên đa dạng hơn, mở nhiều hướng nghiên cứu chuyên sâu vào lĩnh vực ứng dụng đặc thù với đặc trưng riêng Ứng dụng khoa học mật mã không đơn mã hóa giải mã thơng tin mà cịn bao gồm nhiều vấn đề khác cần nghiên cứu giải quyết, ví dụ chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực người sở hữu mã khóa (chứng nhận khóa cơng cộng), quy trình giúp trao đổi thơng tin thực giao dịch điện tử an toàn mạng Các ứng dụng mật mã học khoa học bảo vệ thông tin đa dạng phong phú; tùy vào tính đặc thù hệ thống bảo vệ thơng tin mà ứng dụng có tính với đặc trưng riêng Trong đó, kể số tính hệ thống bảo vệ thơng tin: • Tính bảo mật thơng tin: hệ thống đảm bảo thơng tin giữ bí mật Thơng tin bị phát hiện, ví dụ q trình truyền nhận, người cơng khơng thể hiểu nội dung thông tin bị đánh cắp • Tính tồn vẹn thơng tin: hệ thống bảo đảm tính tồn vẹn thơng tin liên lạc giúp phát thơng tin bị sửa đổi • Xác thực đối tác liên lạc xác thực nội dung thơng tin liên lạc • Chống lại thoái thác trách nhiệm: hệ thống đảm bảo đối tác hệ thống từ chối trách nhiệm hành động mà thực Những kết nghiên cứu mật mã đưa vào hệ thống phức tạp hơn, kết hợp với kỹ thuật khác để đáp ứng yêu cầu đa dạng hệ thống ứng dụng khác thực tế, ví dụ hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ đa phương tiện mạng với yêu cầu cung cấp dịch vụ bảo vệ quyền sở hữu trí tuệ thông tin số Khi biên soạn tập sách này, nhóm tác giả chúng tơi mong muốn giới thiệu với quý độc giả kiến thức tổng quan mã hóa ứng dụng, đồng thời trình bày phân tích số phương pháp mã hóa quy trình bảo vệ thơng tin an tồn hiệu thực tế Bên cạnh phương pháp mã hóa kinh điển tiếng sử dụng rộng rãi nhiều thập niên qua DES, RSA, MD5…, giới thiệu với bạn đọc phương pháp mới, có độ an tồn cao chuẩn mã hóa AES, phương pháp ECC, chuẩn hàm băm mật mã SHA224/256/384/512… Các mơ hình quy trình chứng nhận khóa cơng cộng trình bày tập sách Nội dung sách gồm 10 chương Sau phần giới thiệu tổng quan mật mã học khái niệm hệ thống mã hóa chương 1, từ chương đến chương 5, sâu vào tìm hiểu hệ thống mã hóa quy ước, từ khái niệm bản, phương pháp đơn giản, đến phương pháp Rijndael thuật toán ứng cử viên AES Nội dung chương giới thiệu hệ thống mã hóa khóa cơng cộng phương pháp RSA Chương trình bày khái niệm chữ ký điện tử với số phương pháp phổ biến RSA, DSS, ElGamal Các kết nghiên cứu ứng dụng lý thuyết đường cong elliptic trường hữu hạn vào mật mã học trình bày chương Chương giới thiệu hàm băm mật mã sử dụng phổ biến MD5, SHS với phương pháp công bố thời gian gần SHA-256/384/512 Trong chương 10, tìm hiểu hệ thống chứng nhận khóa cơng cộng, từ mơ hình đến quy trình thực tế hệ thống chứng nhận khóa cơng cộng, với ví dụ việc kết hợp hệ thống mã hóa quy ước, hệ thống mã hóa khóa cơng cộng chứng nhận khóa cơng cộng để xây dựng hệ thống thư điện tử an toàn Với bố cục nội dung nêu trên, hi vọng kiến thức trình bày tập sách nguồn tham khảo hữu ích cho quý độc giả quan tâm đến lĩnh vực mã hóa ứng dụng Mặc dù cố gắng hoàn thành sách với tất nỗ lực chắn chúng tơi cịn thiếu sót định Kính mong cảm thơng góp ý q độc giả NHÓM TÁC GIẢ: TS Dương Anh Đức - ThS Trần Minh Triết với đóng góp sinh viên Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia thành phố Hồ Chí Minh Văn Đức Phương Hồng Phan Thị Minh Đức Nguyễn Minh Huy Lương Vĩ Minh Nguyễn Ngọc Tùng Thành phố Hồ Chí Minh, tháng 01 năm 2005 Mục lục Chương Tổng quan 15 1.1 Mật mã học 15 1.2 Hệ thống mã hóa (cryptosystem) 16 1.3 Hệ thống mã hóa quy ước (mã hóa đối xứng) 18 1.4 Hệ thống mã hóa khóa cơng cộng (mã hóa bất đối xứng) 19 1.5 Kết hợp mã hóa quy ước mã hóa khóa cơng cộng 19 Chương Một số phương pháp mã hóa quy ước 20 2.1 Hệ thống mã hóa quy ước 20 2.2 Phương pháp mã hóa dịch chuyển 21 2.3 Phương pháp mã hóa thay 22 2.4 Phương pháp Affine 23 2.5 Phương pháp Vigenere 28 2.6 Phương pháp Hill 29 2.7 Phương pháp mã hóa hốn vị 30 2.8 Phương pháp mã hóa phép nhân 2.8.1 Phương pháp mã hóa phép nhân 2.8.2 Xử lý số học 2.9 Phương pháp DES (Data Encryption Standard) 2.9.1 Phương pháp DES 2.9.2 Nhận xét 2.10 Phương pháp chuẩn mã hóa nâng cao AES 31 31 32 33 33 36 37 Chương Phương pháp mã hóa Rijndael 39 3.1 Giới thiệu 39 3.2 Tham số, ký hiệu, thuật ngữ hàm 40 3.3 Một số khái niệm toán học 42 3.4 3.5 3.6 3.7 3.8 3.3.1 Phép cộng 3.3.2 Phép nhân 3.3.3 Đa thức với hệ số GF(28) Phương pháp Rijndael 3.4.1 Quy trình mã hóa 3.4.2 Kiến trúc thuật toán Rijndael 3.4.3 Phép biến đổi SubBytes 3.4.4 Phép biến đổi ShiftRows 3.4.5 Phép biến đổi MixColumns 3.4.6 Thao tác AddRoundKey Phát sinh khóa chu kỳ 3.5.1 Xây dựng bảng khóa mở rộng 3.5.2 Xác định khóa chu kỳ Quy trình giải mã 3.6.1 Phép biến đổi InvShiftRows 3.6.2 Phép biến đổi InvSubBytes 3.6.3 Phép biến đổi InvMixColumns 3.6.4 Quy trình giải mã tương đương Các vấn đề cài đặt thuật toán 3.7.1 Nhận xét Kết thử nghiệm 3.9 Kết luận 3.9.1 Khả an toàn 3.9.2 Đánh giá 43 43 46 49 50 52 53 55 56 58 59 59 61 62 63 64 66 67 69 72 73 74 74 75 Chương Phương pháp Rijndael mở rộng 77 4.1 Nhu cầu mở rộng phương pháp mã hóa Rijndael 77 4.2 Phiên mở rộng 256/384/512-bit 4.2.1 Quy trình mã hóa 4.2.2 Phát sinh khóa chu kỳ 4.2.3 Quy trình giải mã 4.2.4 Quy trình giải mã tương đương 4.3 Phiên mở rộng 512/768/1024-bit 78 79 86 88 93 94 4.4 Phân tích mật mã vi phân phân tích mật mã tuyến tính 4.4.1 Phân tích mật mã vi phân 4.4.2 Phân tích mật mã tuyến tính 95 95 96 4.4.3 Branch Number 4.4.4 Sự lan truyền mẫu 4.4.5 Trọng số vết vi phân vết tuyến tính 4.5 Khảo sát tính an tồn phương pháp cơng khác 4.5.1 Tính đối xứng khóa yếu DES 4.5.2 Phương pháp cơng Square 4.5.3 Phương pháp nội suy 4.5.4 Các khóa yếu IDEA 4.5.5 Phương pháp cơng khóa liên quan 4.6 Kết thử nghiệm 98 99 107 108 108 109 109 110 110 111 4.7 Kết luận 113 Chương Các thuật toán ứng cử viên AES 5.1 Phương pháp mã hóa MARS 5.1.1 Quy trình mã hóa 5.1.2 S–box 5.1.3 Khởi tạo phân bố khóa 5.1.4 Quy trình mã hóa 5.1.5 Quy trình giải mã 5.2 Phương pháp mã hóa RC6 5.2.1 Khởi tạo phân bố khóa 5.2.2 Quy trình mã hóa 5.2.3 Quy trình giải mã 5.3 Phương pháp mã hóa Serpent 5.3.1 Thuật tốn SERPENT 5.3.2 Khởi tạo phân bố khóa 5.3.3 S–box 5.3.4 Quy trình mã hóa 5.3.5 Quy trình giải mã 5.4 Phương pháp mã hóa TwoFish 5.4.1 Khởi tạo phân bố khóa 5.4.2 Quy trình mã hóa 5.4.3 Quy trình giải mã 5.5 Kết luận 115 115 116 117 118 123 135 137 138 139 143 144 144 144 147 148 153 154 154 163 169 169 Chương Một số hệ thống mã hóa khóa cơng cộng 172 6.1 Hệ thống mã hóa khóa cơng cộng 172 6.2 Phương pháp RSA 6.2.1 Phương pháp RSA 6.2.2 Một số phương pháp công giải thuật RSA 6.2.3 Sự che dấu thông tin hệ thống RSA 6.2.4 Vấn đề số nguyên tố 6.2.5 Thuật toán Miller-Rabin 6.2.6 Xử lý số học 6.3 Mã hóa quy ước mã hóa khóa cơng cộng 174 174 175 182 183 184 186 186 Chương Chữ ký điện tử 191 7.1 Giới thiệu 191 7.2 Phương pháp chữ ký điện tử RSA 192 7.3 Phương pháp chữ ký điện tử ElGamal 7.3.1 Bài toán logarit rời rạc 7.3.2 Phương pháp ElGamal 7.4 Phương pháp Digital Signature Standard 193 193 194 194 Chương Phương pháp ECC 197 8.1 Lý thuyết đường cong elliptic 197 8.1.1 Công thức Weierstrasse đường cong elliptic 198 8.1.2 Đường cong elliptic trường R2 199 8.1.3 Đường cong elliptic trường hữu hạn 204 8.1.4 Bài toán logarit rời rạc đường cong elliptic 212 8.1.5 Áp dụng lý thuyết đường cong elliptic vào mã hóa 213 8.2 Mã hóa liệu 213 8.2.1 Thao tác mã hóa 214 8.2.2 Kết hợp ECES với thuật tốn Rijndael thuật toán mở rộng 215 8.2.3 Thao tác giải mã 215 8.3 Trao đổi khóa theo phương pháp Diffie - Hellman sử dụng lý thuyết đường cong elliptic (ECDH) 216 8.3.1 Mơ hình trao đổi khóa Diffie-Hellman 216 8.3.2 Mơ hình trao đổi khóa Elliptic Curve Diffie - Hellman 217 8.4 Kết luận 218 Chương Hàm băm mật mã 222 9.1 Giới thiệu 222 9.1.1 Đặt vấn đề 222 9.1.2 Hàm băm mật mã 223 9.1.3 Cấu trúc hàm băm 225 9.1.4 Tính an toàn hàm băm tượng đụng độ 226 9.1.5 Tính chiều 226 9.2 Hàm băm MD5 227 9.2.1 Giới thiệu MD5 227 9.2.2 Nhận xét 231 9.3 Phương pháp Secure Hash Standard (SHS) 232 9.3.1 Nhận xét 235 9.4 Hệ thống chuẩn hàm băm mật mã SHA 236 9.4.1 Ý tưởng thuật toán hàm băm SHA 236 9.4.2 Khung thuật toán chung hàm băm SHA 237 9.4.3 Nhận xét 240 9.5 Kiến trúc hàm băm Davies-Mayer ứng dụng thuật toán Rijndael phiên mở rộng vào hàm băm 241 9.5.1 Kiến trúc hàm băm Davies-Mayer 241 9.5.2 Hàm AES-Hash 242 9.5.3 Hàm băm Davies-Mayer AES-Hash 244 9.6 Xây dựng hàm băm sử dụng thuật toán mở rộng dựa thuật toán Rijndael 245 Chương 10 Chứng nhận khóa cơng cộng 246 10.1 Giới thiệu 246 10.2 Các loại giấy chứng nhận khóa cơng cộng 10.2.1 Chứng nhận X.509 10.2.2 Chứng nhận chất lượng 10.2.3 Chứng nhận PGP 10.2.4 Chứng nhận thuộc tính 10.3 Sự chứng nhận kiểm tra chữ ký 250 250 252 253 253 254 10.4 Các thành phần cở sở hạ tầng khóa cơng cộng 10.4.1 Tổ chức chứng nhận – Certificate Authority (CA) 10.4.2 Tổ chức đăng ký chứng nhận – Registration Authority (RA) 257 257 258 10.4.3 Kho lưu trữ chứng nhận – Certificate Repository (CR) 10.5 Chu trình quản lý giấy chứng nhận 10.5.1 Khởi tạo 10.5.2 Yêu cầu giấy chứng nhận 10.5.3 Tạo lại chứng nhận 10.5.4 Hủy bỏ chứng nhận 10.5.5 Lưu trữ khơi phục khóa 10.6 Các mơ hình CA 10.6.1 Mơ hình tập trung 10.6.2 Mơ hình phân cấp 10.6.3 Mơ hình “Web of Trust” 10.7 Ứng dụng “Hệ thống bảo vệ thư điện tử” 10.7.1 Đặt vấn đề 10.7.2 Quy trình mã hóa thư điện tử 10.7.3 Quy trình giải mã thư điện tử 10.7.4 Nhận xét – Đánh giá 259 259 259 259 262 262 264 264 264 265 266 268 268 269 270 271 Phụ lục A S-box thuật toán MARS 272 Phụ lục B Các hoán vị sử dụng thuật toán Serpent 275 Phụ lục C S-box sử dụng thuật toán Serpent 276 Phụ lục D S-box thuật toán Rijndael 277 Phụ lục E Hằng số giá trị khởi tạo SHA 279 E.1 Hằng số sử dụng SHA E.1.1 Hằng số SHA-1 E.1.2 Hằng số SHA-224 SHA-256 E.1.3 Hằng số SHA-384 SHA-512 E.2 Giá trị khởi tạo SHA Tài liệu tham khảo 10 279 279 279 280 281 284 Một số phương pháp mã hóa quy ước theo thứ tự định 32 bit A, có 16 bit A lặp lại hai lần E ( A) Li-1 Ri-1 f Ki ⊕ Li Ri Hình 2.3 Quy trình phát sinh dãy Li Ri từ dãy Li −1 Ri −1 khóa K i Thực phép toán XOR cho hai dãy 48 bit E ( A) J, ta thu dãy 48 bit B Biểu diễn B thành nhóm bit sau: B = B1 B2 B3 B4 B5 B6 B7 B8 Sử dụng tám ma trận S1 , S , , S8 , ma trận Si có kích thước × 16 dịng ma trận nhận đủ 16 giá trị từ đến 15 Xét dãy gồm bit B j = b1b2 b3b4 b5 b6 , S j ( B j ) xác định giá trị phần tử dòng r cột c Sj, đó, số dịng r có biểu diễn nhị phân b1b6 , số cột c có biểu diễn nhị phân b2 b3b4 b5 Bằng cách này, ta xác định dãy bit C j = S j (Bj ) , ≤ j ≤ 35 Chương Tập hợp dãy bit Cj lại, ta có dãy 32 bit C = C1C2 C3C4 C5C6C7 C8 Dãy 32 bit thu cách hoán vị C theo quy luật P định kết hàm F ( A, J ) Q trình giải mã thực theo thứ tự đảo ngược thao tác trình mã hóa 2.9.2 Nhận xét Do tốc độ tính tốn máy tính ngày tăng cao DES quan tâm ý nhà khoa học lẫn người phá mã (cryptanalyst) nên DES nhanh chóng trở nên khơng an tồn Năm 1997, dự án tiến hành bẻ khóa DES chưa đến ngày với chi phí thấp 250.000 dollars Và vào năm 1999, mạng máy tính gồm 100.000 máy giải mã thư tín mã hóa DES chưa đầy 24 Trong q trình tìm kiếm thuật tốn an toàn DES, Tripple DES đời biến thể DES Tripple DES thực ba lần thuật toán DES với khoá khác với trình tự khác Trình tự thực phổ biến EDE (Encrypt – Decrypt – Encrypt), thực xen kẽ mã hóa với giải mã (lưu ý khóa giai đoạn thực khác nhau) 36 Một số phương pháp mã hóa quy ước 2.10 Phương pháp chuẩn mã hóa nâng cao AES Để tìm kiếm phương pháp mã hóa quy ước với độ an tồn cao DES, NIST cơng bố chuẩn mã hóa mới, thay cho chuẩn DES Thuật tốn đại diện cho chuẩn mã hóa nâng cao AES (Advanced Encryption Standard) thuật tốn mã hóa khóa quy ước, sử dụng miễn phí tồn giới Chuẩn AES bao gồm yêu cầu sau [23]: o Thuật tốn mã hóa theo khối 128 bit o Chiều dài khóa 128 bit, 192 bit 256 bit o Khơng có khóa yếu o Hiệu hệ thống Intel Pentium Pro phần cứng phần mềm khác o Thiết kế dễ dàng (hỗ trợ chiều dài khóa linh hoạt, triển khai ứng dụng rộng rãi ứng dụng khác nhau) o Thiết kế đơn giản: phân tích đánh giá cài đặt dễ dàng o Chấp nhận chiều dài khóa lên đến 256 bit o Mã hóa liệu thấp 500 chu kỳ đồng hồ cho khối Intel Pentium, Pentium Pro Pentium II phiên tối ưu thuật toán o Có khả thiết lập khóa 128 bit (cho tốc độ mã hóa tối ưu) nhỏ thời gian địi hỏi để mã hóa khối 32 bit Pentium, Pentium Pro Pentium II o Không chứa phép tốn làm giảm khả vi xử lý bit, 16 bit, 32 bit 64 bit o Không bao hàm phần tử làm giảm khả phần cứng o Thời gian mã hóa liệu thấp 10/1000 giây vi xử lý bit o Có thể thực vi xử lý bit với 64 byte nhớ RAM 37 Chương Sau thực hai lần tuyển chọn, có năm thuật tốn vào vịng chung kết, gồm có: MARS, RC6, SERPENT, TWOFISH RIJNDAEL Các thuật toán đạt yêu cầu AES nên gọi chung thuật toán ứng viên AES Các thuật tốn ứng viên AES có độ an tồn cao, chi phí thực thấp Chi tiết thuật tốn trình bày Chương - Phương pháp mã hóa Rijndael Chương - Các thuật tốn ứng cử viên AES 38 Phương pháp mã hóa Rijndael Chương Phương pháp mã hóa Rijndael " Nội dung chương trình bày chi tiết phương pháp mã hóa Rijndael hai tác giả Vincent Rijmen Joan Daeman Đây giải thuật Viện Tiêu chuẩn Cơng nghệ Hoa Kỳ (NIST) thức chọn làm chuẩn mã hóa nâng cao (AES) từ ngày 02 tháng 10 năm 2000 3.1 Giới thiệu Với tốc độ khả xử lý ngày nâng cao vi xử lý nay, phương pháp mã hóa chuẩn (Data Encryption Standard – DES) trở nên khơng an tồn bảo mật thơng tin Do đó, Viện Tiêu chuẩn Công nghệ Hoa Kỳ (National Institute of Standards and Technology – NIST) định chọn chuẩn mã hóa với độ an tồn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc Chính phủ Hoa Kỳ ứng dụng dân Thuật toán Rijndael Vincent Rijmen Joan Daeman thức chọn trở thành chuẩn mã hóa nâng cao AES (Advanced Encryption Standard) từ ngày 02 tháng 10 năm 2000 39 Chương Phương pháp mã hóa Rijndael phương pháp mã hóa theo khối (block cipher) có kích thước khối mã khóa thay đổi linh hoạt với giá trị 128, 192 hay 256 bit Phương pháp thích hợp ứng dụng nhiều hệ thống khác từ thẻ thông minh máy tính cá nhân 3.2 Tham số, ký hiệu, thuật ngữ hàm AddRoundKey Phép biến đổi sử dụng mã hóa giải mã, thực việc cộng mã khóa chu kỳ vào trạng thái hành Độ dài mã khóa chu kỳ với kích thước trạng thái SubBytes Phép biến đổi sử dụng mã hóa, thực hành việc thay phi tuyến byte trạng thái hành thông qua bảng thay (S-box) InvSubBytes Phép biến đổi sử dụng giải mã Đây phép biến đổi ngược phép biến đổi SubBytes MixColumns Phép biến đổi sử dụng mã hóa, thực thao tác trộn thông tin cột trạng thái hành Mỗi cột xử lý độc lập InvMixColumns Phép biến đổi sử dụng giải mã Đây phép biến đổi ngược phép biến đổi MixColumns 40 Phương pháp mã hóa Rijndael ShiftRows Phép biến đổi sử dụng mã hóa, thực việc dịch chuyển xoay vịng dòng trạng thái hành với di số tương ứng khác InvShiftRows Phép biến đổi sử dụng giải mã Đây phép biến đổi ngược phép biến đổi ShiftRows Nw Số lượng byte đơn vị liệu “từ” Trong thuật toán Rijndael, thuật toán mở rộng 256/384/512 bit thuật toán mở rộng 512/768/1024 bit, giá trị Nw 4, 16 K Khóa Nb Số lượng cột (số lượng từ 8×Nw bit) trạng thái Giá trị Nb = 4, 6, hay Chuẩn AES giới hạn lại giá trị Nb = Nk Số lượng từ (8×Nw bit) khóa Giá trị Nk = 4, 6, hay Nr Số lượng chu kỳ, phụ thuộc vào giá trị Nk and Nb theo công thức: Nr = max (Nb, Nk)+6 41 Chương RotWord Hàm sử dụng q trình mở rộng mã khóa, thực thao tác dịch chuyển xoay vòng Nw byte thành phần từ SubWord Hàm sử dụng q trình mở rộng mã khóa Nhận vào từ (Nw byte), áp dụng phép thay dựa vào S-box byte thành phần trả từ gồm Nw byte thành phần thay XOR Phép toán Exclusive-OR ⊕ Phép toán Exclusive-OR ⊗ Phép nhân hai đa thức (mỗi đa thức có bậc < Nw) modulo cho đa thức xNw + • 3.3 Phép nhân trường hữu hạn Một số khái niệm tốn học Đơn vị thơng tin xử lý thuật toán Rijndael byte Mỗi byte xem phần tử trường Galois GF(28) trang bị phép cộng (ký hiệu ⊕) phép nhân (ký hiệu •) Mỗi byte biểu diễn nhiều cách khác 42 Phương pháp mã hóa Rijndael nhau: dạng nhị phân ({b7b6b5b4b3b2b1b0}), dạng thập lục phân ({h1h0}) hay dạng đa thức có hệ số nhị phân ∑ bi x i i=0 3.3.1 Phép cộng Phép cộng hai phần tử GF(28) thực cách “cộng” (thực chất phép toán XOR, ký hiệu ⊕) hệ số đơn thức đồng dạng hai đa thức tương ứng với hai toán hạng xét Như vậy, phép cộng phép trừ hai phần tử GF(28) hoàn toàn tương đương Nếu biểu diễn lại phần tử thuộc GF(28) hình thức nhị phân phép cộng {a7a6a5a4a3a2a1a0} với {b7b6b5b4b3b2b1b0} {c7c6c5c4c3c2c1c0} với ci = ⊕ b j , 0≤ i ≤ 3.3.2 Phép nhân Khi xét biểu diễn đa thức, phép nhân GF(28) (ký hiệu •) tương ứng với phép nhân thông thường hai đa thức đem chia lấy dư (modulo) cho đa thức tối giản (irreducible polynomial) bậc Đa thức gọi tối giản đa thức chia hết cho Trong thuật toán Rijndael, đa thức tối giản chọn m( x) = x8 + x + x3 + x + (3.1) hay 1{1b} biểu diễn dạng thập lục phân 43 Chương Kết nhận đa thức bậc nhỏ nên biểu diễn dạng byte Phép nhân GF(28) biểu diễn phép toán đơn giản mức độ byte Phép nhân định nghĩa có tính kết hợp, tính phân phối phép cộng có phần tử đơn vị {01}.Với đa thức b(x) có hệ số nhị phân với bậc nhỏ tồn phần tử nghịch đảo b(x), ký hiệu b-1(x) (được thực cách sử dụng thuật toán Euclide mở rộng [45]) Nhận xét: Tập hợp 256 giá trị từ đến 255 trang bị phép toán cộng (được định nghĩa phép toán XOR) phép nhân định nghĩa tạo thành trường hữu hạn GF(28) 3.3.2.1 Phép nhân với x Phép nhân (thông thường) đa thức b(x ) = b7 x + b6 x + b5 x + b4 x + b3 x + b2 x + b1 x + b0 = ∑ bi x i (3.2) i =0 với đa thức x cho kết đa thức b7 x + b6 x + b5 x + b4 x + b3 x + b2 x + b1 x + b0 x (3.3) Kết x • b( x) xác định cách modulo kết cho đa thức m(x) Trường hợp b7 = x • b(x ) = b6 x + b5 x + b4 x + b3 x + b2 x + b1 x + b0 x 44 (3.4) Phương pháp mã hóa Rijndael Trường hợp b7 = ( = (b x ) + b x ) − m( x ) x • b(x ) = b7 x + b6 x + b5 x + b4 x + b3 x + b2 x + b1 x + b0 x mod m( x ) + b6 x + b5 x + b x + b3 x + b x + b1 x (3.5) Như vậy, phép nhân với đa thức x (hay phần tử {00000010} ∈ GF(28)) thực mức độ byte phép shift trái sau thực tiếp phép tốn XOR với giá trị {1b}nếu b7 = Thao tác ký hiệu xtime() Phép nhân với lũy thừa x thực cách áp dụng nhiều lần thao tác xtime() Kết phép nhân với giá trị xác định cách cộng ( ⊕ ) kết trung gian lại với Khi đó, việc thực phép nhân hai phần tử a, b thuộc GF(28) tiến hành theo bước sau: Phân tích phần tử (giả sử a) thành tổng lũy thừa 2 Tính tổng kết trung gian phép nhân phần tử lại (là b) với thành phần lũy thừa phân tích từ a ˆ Ví dụ: {57} • {13} = {fe} {57} • {02} = xtime({57}) = {ae} {57} • {04} = xtime({ae}) = {47} {57} • {08} = xtime({47}) = {8e} {57} • {10} = xtime({8e}) = {07}, 45 Chương Như vậy: {57} • {13} 3.3.3 {57} • ({01} ⊕ {02} ⊕ {10}) {57} ⊕ {ae} ⊕ {07} {fe} = = = Đa thức với hệ số GF(28) Xét đa thức a(x) b(x) bậc với hệ số thuộc GF(28): a ( x) = ∑ x i b(x ) = i =0 ∑ bi x i (3.6) i =0 Hai đa thức biểu diễn lại dạng từ gồm byte [a0 , a1 , a2 , a3 ] [b0 , b1 , b2 , b3 ] Phép cộng đa thức thực cách cộng (chính phép tốn XOR byte) hệ số đơn thức đồng dạng với nhau: a ( x ) + b( x ) = ∑ (ai ⊕ bi ) x i (3.7) i =0 Phép nhân a(x) với b(x) thực thông qua hai bước Trước tiên, thực phép nhân thông thường c(x ) = a (x )b( x ) c( x) = c6 x + c5 x + c x + c3 x + c x + c1 x + c0 với c0 = a • b0 c4 = a3 • b1 ⊕ a • b2 ⊕ a1 • b3 c1 = a1 • b0 ⊕ a • b1 c5 = a3 • b2 ⊕ a • b3 c = a • b0 ⊕ a1 • b1 ⊕ a • b2 c6 = a3 • b3 c3 = a3 • b0 ⊕ a • b1 ⊕ a1 • b2 ⊕ a • b3 46 (3.8) (3.9) Phương pháp mã hóa Rijndael Rõ ràng c(x) biểu diễn từ gồm byte Đa thức c(x) đưa đa thức có bậc nhỏ cách lấy c(x) modulo cho đa thức bậc Trong thuật toán Rijndael, đa thức bậc chọn M ( x) = x + ( ) Do x j mod x + = x j mod nên kết d(x) = a(x) ⊗ b(x) xác định d ( x ) = d x + d x + d1 x + d (3.10) với d = a • b0 ⊕ a3 • b1 ⊕ a • b2 ⊕ a1 • b3 d1 = a1 • b0 ⊕ a • b1 ⊕ a3 • b2 ⊕ a • b3 d = a • b0 ⊕ a1 • b1 ⊕ a • b2 ⊕ a3 • b3 d = a3 • b0 ⊕ a • b1 ⊕ a1 • b2 ⊕ a0 • b3 (3.11) Trong trường hợp đa thức a(x) cố định, phép nhân d(x) = a(x) ⊗ b(x) biểu diễn dạng ma trận sau ⎡d ⎤ ⎡a0 ⎢d ⎥ ⎢a ⎢ 1⎥ = ⎢ ⎢d ⎥ ⎢a2 ⎢ ⎥ ⎢ ⎣ d ⎦ ⎣ a3 a3 a2 a0 a3 a1 a0 a2 a1 a1 ⎤ ⎡b0 ⎤ a ⎥⎥ ⎢⎢ b1 ⎥⎥ a3 ⎥ ⎢b2 ⎥ ⎥⎢ ⎥ a ⎦ ⎣b3 ⎦ (3.12) Do x + đa thức tối giản GF(28) nên phép nhân với đa thức a(x) cố định chọn không đảm bảo tính khả nghịch Vì vậy, phương pháp Rijndael chọn đa thức a(x) có phần tử nghịch đảo (modulo M(x)) a(x) = {03}x3 + {01}x2 + {01}x + {02} (3.13) a-1(x) = {0b}x3 + {0d}x2 + {09}x + {0e} (3.14) 47 Chương 3.3.3.1 Phép nhân với x Xét đa thức b(x ) = b3 x + b2 x + b1 x + b0 (3.15) Kết phép nhân c(x) = b(x) ⊗ x xác định c(x ) = b2 x + b1 x + b0 x + b3 (3.16) Phép nhân với x tương đương với phép nhân dạng ma trận trình bày phần với giá trị a0 = a2 = a3 = {00} a1 = {01} ⎡c0 ⎤ ⎡00 ⎢c ⎥ ⎢ ⎢ ⎥ = ⎢ 01 ⎢c ⎥ ⎢00 ⎢ ⎥ ⎢ ⎣c3 ⎦ ⎣00 00 00 01⎤ ⎡b0 ⎤ ⎢ ⎥ 00 00 00⎥⎥ ⎢ b1 ⎥ 01 00 00⎥ ⎢b2 ⎥ ⎥⎢ ⎥ 00 01 00⎦ ⎣b3 ⎦ (3.17) Như vậy, phép nhân với x hay lũy thừa x tương ứng với phép dịch chuyển xoay vòng byte thành phần từ Trong thuật toán Rijndael cần sử dụng đến đa thức x3 (a0 = a1 = a2 = {00} a3 = {01})trong hàm RotWord nhằm xoay vòng byte thành phần từ đưa vào Như vậy, đưa vào từ gồm byte [b0, b1, b2, b3] kết nhận từ gồm byte [b1, b2, b3, b0] 48 Phương pháp mã hóa Rijndael 3.4 Phương pháp Rijndael Phương pháp mã hóa Rijndael bao gồm nhiều bước biến đổi thực tuần tự, kết đầu bước biến đổi trước đầu vào bước biến đổi Kết trung gian bước biến đổi gọi trạng thái (state) Một trạng thái biểu diễn dạng ma trận gồm dòng Nb cột với Nb với độ dài khối chia cho 32 Mã khóa (Cipher Key) biểu diễn dạng ma trận gồm dòng Nk cột với Nk với độ dài khóa chia cho 32 Trong số tình huống, ma trận biểu diễn trạng thái hay mã khóa khảo sát mảng chiều chứa phần tử có độ dài byte, phần tử tương ứng với cột ma trận Số lượng chu kỳ, ký hiệu Nr, phụ thuộc vào giá trị Nb Nk theo công thức: Nr = max{Nb, Nk } + a 0,0 a 0,1 a0,2 a0,3 a0,4 a0,5 k0,0 k0,1 k0,2 k0,3 a 1,0 a 1,1 a1,2 a1,3 a1,4 a1,5 k1,0 k1,1 k1,2 k1,3 a 2,0 a 2,1 a2,2 a2,3 a2,4 a2,5 k2,0 k2,1 k2,2 k2,3 a 3,0 a 3,1 a3,2 a3,3 a3,4 a3,5 k3,0 k3,1 k3,2 k3,3 Hình 3.1 Biểu diễn dạng ma trận trạng thái (Nb = 6) mã khóa (Nk = 4) 49 ... Mật mã học 15 1.2 Hệ thống mã hóa (cryptosystem) 16 1.3 Hệ thống mã hóa quy ước (mã hóa đối xứng) 18 1.4 Hệ thống mã hóa khóa cơng cộng (mã hóa bất đối xứng) 19 1.5 Kết hợp mã hóa quy ước mã hóa. .. tạo thành vành 1.3 Hệ thống mã hóa quy ước (mã hóa đối xứng) Trong hệ thống mã hóa quy ước, q trình mã hóa giải mã thông điệp sử dụng mã khóa gọi khóa bí mật (secret key) hay khóa đối xứng (symmetric... tin có sau mã hóa Tập khóa K tập hữu hạn khóa sử dụng E D tập luật mã hóa giải mã Với khóa k ∈ K , tồn luật mã hóa ek ∈ E luật giải mã d k ∈ D tương ứng Luật mã hóa ek : P → C luật giải mã ek :

Ngày đăng: 10/05/2021, 23:19