1. Trang chủ
  2. » Giáo án - Bài giảng

Mật mã học nâng cao

117 40 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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - PT IT ĐỖ XUÂN CHỢ BÀI GIẢNG MẬT MÃ HỌC NÂNG CAO Hà Nội, tháng 12 năm 2017 MỞ ĐẦU Hiện nay, thực tế ứng dụng mật mã học triển khai áp dụng hầu hết lĩnh vực công nghệ đời sống Các công ty sản xuất phần mềm phần cứng giới có nghiên cứu xây dựng cho ứng dụng, cơng cụ bảo mật dựa kỹ thuật mã hóa để bảo đảm an tồn thơng tin Rộng quốc gia hay tổ chức có chế mã hóa riêng để bảo vệ hệ thống thông tin Môn học “Mật mã học nâng cao” môn chuyên ngành thuộc chương trình đào tạo đại học ngành An tồn thơng tin Học Viện Cơng Nghệ Bưu Chính Viễn Thơng Mơn học cung cấp kiến thức nâng cao mật mã học, bao gồm: số giải thuật mã hóa bí mật cơng khai tiên tiến, mật mã sở đường cong Elliptic, kỹ thuật thám mã thực tế Bài giảng “Mật mã học nâng cao” biên soạn sở đề cương chi tiết môn học duyệt tổng hợp tài liệu từ nhiều nguồn nhằm cung cấp tài liệu phục vụ cho sinh viên nghiên cứu học tập Bài giảng cấu trúc thành chương sau: IT Chương 1: Hệ mật mã đối xứng tiên tiến Chương cung cấp kiến thức mở rộng nâng cao liên quan đến hệ mật mã hóa đối xứng bao gồm: vấn đề mở rộng khóa cho giải thuật mã hóa AES; nguyên tắc làm việc số giải thuật mã hóa hệ mật mã đối xứng tiên tiến điển hình như: IDEA; Twofish; RC6 Bên cạnh đó, chương giảng cung cấp số kiến thức liên quan đến đánh giá mức độ an toàn hệ mật đối xứng dựa tiêu chuẩn NIST PT Chương 2: Hệ mật mã bất đối xứng tiên tiến Chương trình bày kiến thức nâng cao liên quan đến hệ mật mã bất đối xứng bao gồm: quy trình làm việc số giải thuật mã hóa hệ mật bất đối xứng ứng dụng nhiều như: Rabin; Elgamal, đánh giá ưu điểm nhược điểm số giải thuật mã hóa hệ mật Chương 3: Mật mã đường cong Elliptic Chương cung cấp số kiến thức liên quan đến hệ mật đường cong Elliptic bao gồm: khái niệm; phép toán; số hệ mật đường cong; đánh giá độ an toàn hệ mật Bên cạnh đó, chương đề cập số ứng dụng hệ mật đường cong Elliptic thực tế trong: chữ ký số, bitcoin, Smarcard… Chương 4: Thám mã Chương cung cấp kiến thức liên quan đến vấn đề thám mã bao gồm: định nghĩa, khái niệm, phân loại, cách thức tiến hành… Ngồi ra, chương cịn trình bày số kỹ thuật thám mã đối xứng bất đối xứng ứng dụng thám mã: vi sai, tuyến tính, nội suy, kênh bên, lựa chọn mã thích nghi MỤC LỤC MỞ ĐẦU CHƯƠNG 1: HỆ MẬT MÃ ĐỐI XỨNG TIÊN TIẾN 1.1 Vấn đề mở rộng khóa cho giải thuật AES 1.1.1 Tổng quan AES 1.1.2 Ưu điểm nhược điểm AES 11 1.1.3 Nhu cầu mở rộng khóa AES 13 1.1.4 Giải pháp mở rộng khóa cho AES 14 1.2 Một số giải thuật mã hóa đối xứng tiên tiến 18 1.2.1 IDEA 18 1.2.2 Twofish 26 1.2.3 RC6 43 1.3 Đánh giá mức độ an toàn số giải thuật mã hóa đối xứng tiên tiến 50 Tiêu chuẩn đánh giá 50 1.3.2 Đánh giá số giải thuật mã hóa đối xứng tiên tiến 50 IT 1.3.1 CHƯƠNG 2: HỆ MẬT MÃ BẤT ĐỐI XỨNG TIÊN TIẾN 53 2.1 Sơ đồ chức mã hóa khóa bất đối xứng 53 2.2 Một số giải thuật mã hóa bất đối xứng tiên tiến 54 Rabin 54 2.2.2 Elgamal Error! Bookmark not defined 2.3 PT 2.2.1 Ưu điểm nhược điểm số giải thuật bất đối xứng tiên tiến 61 2.3.1 RSA 62 2.3.2 Rabin 63 2.3.3 Elgamal Error! Bookmark not defined CHƯƠNG 3: MẬT MÃ ĐƯỜNG CONG ELLIPTIC 66 3.1 Tổng quan chung hệ mật đường cong Elliptic 66 3.2 Các đường cong Elliptic 67 3.3 Các đường cong Elliptic trường Galois 69 3.3.1 Đường cong Elliptic trường Fp (p số nguyên tố) 69 3.3.2 Đường cong Elliptic trường F2m 70 3.4 Các phép tốn cộng nhân nhóm E 72 3.4.1 Phép cộng 72 3.4.2 Phép nhân đôi 73 3.5 Mật mã đường cong Elliptic 74 3.5.1 Vấn đề nhúng rõ lên đường cong 74 3.5.2 Trao đổi thỏa thuận khóa Diffie – Hellman 75 3.5.3 Trao đổi thỏa thuận khóa Omura – Massey 77 3.5.4 Hệ mật Elgamal 78 3.6 Độ an toàn hệ mật đường cong Elliptic 80 3.7 Ứng dụng đường cong Elliptic 81 3.7.1 Một số đường cong sử dụng thực tế 81 3.7.2 Ứng dụng chữ ký số 82 3.7.3 Bitcoin 83 3.7.4 Smartcard 84 3.7.5 Bộ sinh số ngẫu nhiên 84 CHƯƠNG 4: THÁM MÃ 86 4.1 Tổng quan thám mã 86 4.2 Phân loại thám mã 88 4.3 Một số kỹ thuật thám mã hệ mật khóa đối xứng 90 Phương pháp thám mã tuyến tính 90 4.3.2 Phương pháp thám mã vi sai 92 4.3.3 Thám mã nội suy 98 4.3.4 Một số kỹ thuật khác 101 Một số kỹ thuật thám mã hệ mật mã bất đối xứng 102 PT 4.4 IT 4.3.1 4.4.1 Thám mã dựa vào sơ hở toán học 102 4.4.2 Thám mã lựa chọn mã thích nghi 109 4.4.3 Thám mã kênh bên 113 TÀI LIỆU THAM KHẢO 117 DANH MỤC CÁC TỪ VIẾT TẮT Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt AES Advanced Encryption Standard Chuẩn mã hóa nâng cao ECC Elliptic Curve Cryptography Mã hóa dựa đường cong Elliptic MDS Maximum Distance Separable Mã tách có khoảng cách cực đại PHT Pseudo-Hadamard Transforms Pseudo-Hadamard Transforms DES Data Encryption Standard Chuẩn mã hóa liệu PT IT Từ viết tắt DANH MỤC CÁC BẢNG BIỂU TT Bảng Nội dung Trang Bảng 1.1 Bảng 1.2 Bảng 1.3 Bảng 1.4 Bảng 1.5 Bảng chấm điểm thuật toán dự thi tuyển chọn AES Sự phụ thuộc Nr vào kích thước khóa Danh sách khóa với Nk = (128 bit) Danh sách khóa với Nk = (192 bit) Danh sách khóa với Nk = (256 bit) 13 15 15 15 15 Bảng 1.6 Biểu diễn mảng giá trị Rcon 17 Sự biệt q trình sinh khóa loại khóa 128 bit, 192 bit 256 bit Bảng 1.8 Độ dài 52 khóa dùng vịng thuật tốn IDEA Bảng 1.9 Các khóa dùng cho q trình mã hóa giải mã giải thuật IDEA Bảng 1.10 hoán vị q0 Bảng 1.11 Hoán vị q1 Bảng 1.12 Đánh giá số giải thuật mã hóa đối xứng tiên tiến Bảng 2.1 Ví dụ kết trình tính tốn giải thuật mã hóa Elgamal Bảng 3.1 điểm (x, y) trường Z23 với a=1, b=1 Bảng 3.2 Giá trị lũy thừa g Bảng 3.3 điểm thuộc đường cong E24 (g4, 1) Bảng 3.4 Q trình trao đổi thỏa thuận khóa Diffie – Hellman Bảng 3.5 Ví dụ phân phối thỏa thuận khóa Diffie – Hellman Bảng 3.6 Quá trình trao đổi thỏa thuận khóa Omura – Massey Bảng 3.7 Ví dụ phân phối thỏa thuận khóa Omura – Massey Bảng 3.8 So sánh sử dụng RSA ECC trình bắt tay SSL Bảng 4.1 Bảng phân bố cặp giá trị XOR S1 Bảng 4.2 Các giá trị đầu vào ứng với vi sai S1' I  34 x Bảng 4.3 Các trường hợp khóa cho 34x  Dx S1 với đầu vào 1x ,35x Bảng 4.4 Các bước công nội suy PT IT Bảng 1.7 18 23 25 35 35 51 61 69 71 71 75 77 78 78 81 95 97 97 99 DANH MỤC CÁC HÌNH VẼ Nội dung TT Hình Trang Quy trình sinh khóa mã hóa AES 11 Hình 1.2 Hình biểu diễn lược đồ sinh Nk từ khóa đầu với AES-128 16 Hình 1.3 Hình biểu diễn lược đồ sinh Nk từ khóa đầu với AES-192 16 Hình 1.4 Hình biểu diễn lược đồ sinh Nk từ khóa đầu với AES-256 17 Hình 1.5 Sơ đồ mã hóa giải thuật mã hóa IDEA 20 Hình 1.6 Sơ đồ mã hóa vịng giải thuật mã hóa IDEA 22 Hình 1.7 Vịng giải thuật mã hóa IDEA 23 Hình 1.8 Sơ đồ tổng quát thành phần giải thuật mã hóa Twofish 27 Hình 1.9 Quy trình mã hóa giải thuật mã hóa Twofish 28 Hình 1.10 Các phép biến đổi thực vòng 29 Hình 1.11 Cấu trúc tổng quát hàm F 30 Hình 1.12 Cấu trúc hàm g 31 Hình 1.14 Hình 1.15 Hình 1.16 Hình 1.17 Mơ hình phát sinh S-box phụ thuộc khố với khóa dài 128 bit Mơ hình phát sinh S-box phụ thuộc khố với khóa dài 192 bit Mơ hình phát sinh S-box phụ thuộc khố với khóa dài 256 bit Hốn vị q PT Hình 1.13 IT Hình 1.1 Quy trình sinh khóa giải thuật mã hóa Twofish hàm h với khóa 128 bit 32 32 33 34 40 Hình 1.20 Quy trình sinh khóa giải thuật mã hóa Twofish hàm h với khóa 192 bit Quy trình sinh khóa giải thuật mã hóa Twofish hàm h với khóa 256 bit So sánh hai quy trình mã hố giải mã Hình 1.21 Quy trình mã hóa giải thuật mã hóa RC6 45 Hình 1.22 Các phép biến đổi thực vịng 46 Hình 1.23 Quy trình giải mã giải thuật mã hóa RC6 47 Hình 2.1 Sơ đồ chức hệ mật khóa cơng khai 53 Hình 2.2 Quy trình sinh khóa, mã hóa giải mã giải thuật Rabin 55 Hình 2.3 Quy trình sinh khóa, mã hóa giải mã giải thuật Elgamal 60 Hình 1.18 Hình 1.19 40 41 43 Trang Nội dung Hình 3.1 Đồ thị biểu diễn trường hợp  67 Hình 3.2 Đồ thị hàm số y2 = x3+x+1 y2 = x3 - x 68 Hình 3.3 Một vài đường cong Elliptic 68 Hình 3.4 Đường cong Elliptic E23 (1, 1) 70 Hình 3.5 Đường cong y2+xy=x3+ax+b trường số thực 70 Hình 3.6 Đường cong Elliptic E24 (g4, 1) 72 Hình 3.7 Phép cộng đường cong Elliptic 72 Hình 3.8 Phép nhân đơi đường cong Elliptic 73 Hình 3.9 Sơ đồ ví dụ việc trao đổi khóa 75 Hình 3.10 Sơ đồ trao đổi hệ mật Elgamal 79 Hình 3.11 Sơ đồ chữ ký số dung Bitcoin 84 Hình 3.12 Sơ đồ sinh số ngẫu nhiên dùng ECC 85 PT IT TT Hình CHƯƠNG 1: HỆ MẬT MÃ ĐỐI XỨNG TIÊN TIẾN Chương cung cấp kiến thức mở rộng nâng cao liên quan đến hệ mật mã hóa đối xứng bao gồm: vấn đề mở rộng khóa cho giải thuật mã hóa AES; nguyên tắc làm việc số giải thuật mã hóa hệ mật mã đối xứng tiên tiến điển hình như: IDEA; Twofish; RC6, đánh giá mức độ an toàn hệ mật 1.1 Vấn đề mở rộng khóa cho giải thuật AES 1.1.1 Tổng quan AES IT AES (Advanced Encryption Standard) chuẩn mã hóa tiên tiến ứng dụng rộng rãi Về AES xây dựng sở thuật toán Rijndael (hai nhà mật mã học người Bỉ Joan Deamen Vincent Rijmen) mạng thay hoán vị Tuy nhiên, ngày thói quen nên người dùng thường gọi AES thuật toán hay giải thuật Trong giảng, thống gọi chuẩn mã hóa tiên tiến AES giải thuật mã hóa AES Trong giảng “Mật mã học sở” tác giả trình bày chi tiết quy trình mã hóa giải mã giải thuật mã hóa AES Trước nghiên cứu vấn đề mở rộng khóa cho AES, nhắc lại số vấn đề giải thuật mã hóa AES Các vấn đề giải thuật mã hóa AES sau: a) Đặc trưng bản: PT - Đầu vào đầu khối liệu 128 bít - Khóa dùng để mã hóa giải mã giải thuật AES 128 ,192 256 bít Kích thước khóa định số vịng lặp mã hóa giải mã: 10 vịng lặp với khóa 128 bít; 12 vịng lặp với khóa 192 bít; 14 vịng lặp với khóa 256 bít - AES thiết kế dựa mạng thay hoán vị SPN (substitution-permutation network) vận hành dựa ma trận 4×4 gọi state (trạng thái) - AES đời sau NIST tổ chức thi tuyển chọn ứng viên thay cho giải thuật mã hóa DES Trong phần sau giảng trình bày chi tiết tiêu chí đánh giá thi NIST b) Cơ sở toán học: Cơ sở tốn học giải thuật mã hóa AES phép cộng phép nhân trường GF(28) - Phép cộng trường GF(28): Chính phép XOR hay phép cộng theo modulo bit tương ứng byte Nghĩa là: Giả sử: A=a7a6a5a4a3a2a1a0 B=b7b6b5b4b3b2b1b0 C=A+B=c7c6c5c4c3c2c1c0 đó: ci=(ai+bi)mod (0k = 1, d = 5) Từ kết nhận thấy rằng: có d =5 cho 𝛷(𝑛) giá trị ngun Vậy khóa bí mật cần tìm d =5 4.4.1.3 Tấn công với số mũ công khai nhỏ Tấn công số mũ công khai nhỏ dạng công biết mã, dùng trường hợp khóa cơng khai nhỏ Nếu người gửi mã hóa thơng điệp M khóa cơng khai nhỏ gửi cho nhiều người tìm M mà khơng cần biết khóa bí mật Mục đích kỹ thuật cơng tìm rõ M Các tiến hành sau: Bước 1: Kẻ công biết người gửi gửi mã cho nhiều người khác biết khóa cơng khai, đồng thời bắt tồn mã Bước 2: Sử dụng định lý số dư Trung Hoa để tìm rõ M n chung từ IT mã Bước 3: Tính rõ gốc: M  ( M n ) n PT Ví dụ: người gửi dùng khóa cơng khai e = mã hóa thơng điệp M gửi cho người khác Khi đó, kẻ cơng có mã tương ứng: C1 = M3mod n1 C2= M3 mod n2 C3 = M3 mod n3 Từ mã C1; C2; C3 mà kẻ cơng tìm rõ M mà khơng cần biết khóa bí mật Quy trình giải mã sau: Nếu n1, n2, n3 nguyên tố nhau, áp dụng định lý phần dư Trung Hoa tính M3 thỏa mãn điều kiện Lấy bậc thơng thường M3 tìm M Kẻ cơng mị M mà khơng cần biết khóa bí mật Nếu ngược lại n1 n2 khơng ngun tố ƯCLN (n1, n2) p q chung hai người Khi người phá vỡ hệ mật người Ví dụ kỹ thuật cơng lợi dụng số mũ cơng khai nhỏ: Có C1 = 2, C2 = 3, C3 = 5, n1 = 3, n2= 5, n3= Tìm M Giải : Đặt M3= x 107  x  2(mod )   x  3(mod )  x  5(mod )  Có: Z  3.5.7  105; Z1  5.7  35, Z2  3.7  21, Z3  3.5  15 y1  351 (mod 3)  21 (mod 3)  2; y2  211 (mod 5)  11 (mod 5)  1; y3  151 (mod 7)  11 (mod 7)  Từ tính được: x   35    21    15  1(mod 105) x  140  63  75(mod 105)  278(mod 105) x  68(mod 105) => M3 ≡68 mod 105 => M3 = 68 + k.105 Các tham số p-1 q-1 có ước nguyên tố nhỏ 4.4.1.4 IT Trong xây dựng hệ RSA, bất cẩn việc chọn tham số p q dẫn đến p-1 q-1 có ước nguyên tố nhỏ hệ mật trở nên an tồn Khi đó, kẻ cơng dùng thuật tốn Pollar để phân tích N cách hiệu tìm thám số p, q Các yêu cầu kỹ thuật sau: modul N cận B PT Cách thức thực sau: - Bước 1: Chọn cận B -Bước 2: Tính 𝑀 = ∏ 𝑞 ⌊𝑙𝑜𝑔𝑞 𝑛⌋ 𝑠ố 𝑛𝑔𝑢𝑦ê𝑛 𝑡ố 𝑞≤𝐵 q tập số nguyên tố q< = B - Bước 3: Chọn ngẫu nhiên số a cho a số nguyên tố với n - Bước 4: Tính g = ƯCLN(aM - 1, n) - Bước 5: + Nếu < g < n nhận g, lúc p = g q = 𝑛 𝑝 + Nếu g = 1, chọn số B khác lớn + Nếu g = n, chọn số B khác nhỏ Ví dụ: phương pháp công lợi dụng vào p-1 q-1 có ước nguyên tố nhỏ sau: Gọi p= 13, q = 23 (yếu tố cần tìm) Cách thức để kẻ cơng tìm số p, q sau: Bướ 1: Chọn B = Bước 2: Tính M = 28 * 35 * 53 (q lúc = 2, 3, số nguyên tố thỏa mãn điều kiện q≤5) - Có n = 299, chọn a = - g = gcd (aM - 1, n) = 13 Do < 13 < 299, trả g =13 𝑛 => p = 13, q = = 23 𝑝 4.4.2 Thám mã lựa chọn mã thích nghi 4.4.2.1 Giới thiệu chuẩn PKCS Trước thực mã hóa, phải thực việc chuyển đổi văn rõ (chuyển đổi từ M sang m) cho khơng có giá trị M tạo văn mã khơng an tồn Trong chuẩn PKCS#1 phiên 1.5, trước mã hóa, thơng điệp M đệm thơng báo vào trước thành m = PKCS(M) = 00 02 R1 R2 … Rs 00 M byte ngẫu nhiên Dữ liệu IT k byte Trong đó: PT - k số byte n - byte có giá trị 0, byte thứ hai có giá trị - Ri byte ngẫu nhiên khác - s = k – – số byte data s ≥ để đáp ứng yêu cầu an tồn - byte sau Rs có giá trị - Cuối thông điệp M Khi mã tính C = me mod N Khi giải mã, tính m= Cd mod N sau kiểm tra xem m có tn theo chuẩn PKCS hay khơng tức m có dạng 00 02 R1 R2 … Rs 00 M hay không Nếu chuẩn PKCS#1 phiên 1.5 cài đặt với hàm tiên tri (Oracle Functions) giải mã xong hàm tiên tri kiểm tra rõ PKCS(m) gửi phúc đáp ngược trở lại nơi yêu cầu giải mã rõ m có tn theo chuẩn PKCS hay khơng Chính phúc đáp giúp cho kẻ cơng cơng tính rõ mã mà muốn giải mã mà khơng cần phải biết khóa giải mã Hàm tiên tri (Oracle Functions) – phần mềm dùng để kiểm tra xem rõ có tuân theo PKCS #1 v1.5 hay không 4.4.2.2 Cách thức công lựa chọn thích nghi mã 109 Loại cơng khơng cần phải biết khóa bí mật mà giải mã thông điệp dựa vào việc khai thác kết trả hàm tiên tri Trong giảng này, tác giả trình bày cách thức cơng lựa chọn thích nghi mã để cơng lên giải thuật mã hóa RSA giải thuật mã hóa RSA sử dụng tiêu chuẩn chuyển đổi rõ PKCS #1 v1.5 Đầu vào hàm tiên tri mã C, đầu kết kiểm tra rõ M Hàm tiên tri hoạt động sau: nhận mã C, giải mã C thu M, kiểm tra M có tn theo PKCS hay khơng, trả kết kiểm tra cho người yêu cầu Nghĩa người yêu cầu có kết kiểm tra PKCS rõ khơng có rõ Kẻ cơng gửi nhiều mã tùy thích đến hàm tiên tri nhận kết kiểm tra xem rõ giải mã có tn theo PKCS hay khơng vào kết để tìm rõ tương ứng với mã mong muốn giải mã Kịch công sau: Giả sử kẻ cơng muốn tìm rõ M từ mã C = Me mod n Bản rõ M trường hợp không thiết phải tuân theo PKCS Tuy nhiên, thực tế để công hiệu quả, rõ M phải phân tích dạng tuân theo PKCS IT Bước 1: kẻ cơng kiểm tra xem M có tn theo PKCS không (bằng cách gửi C đến hàm tiên tri, giải mã M, hàm tiên tri trả kết kiểm tra PKCS M) Lúc có khả xảy ra: Khả 1: Nếu M tuân theo PKCS m = M PT Khả 2: Nếu M khơng tn theo PKCS, kẻ cơng chọn rõ m tuân theo PKCS cho từ m kẻ cơng tính M Bước 2: tìm m thuộc miền xác định m ∈ M0 = [2B, 3B - 1] Trong đó: M0 miền giá trị chứa m, B = 28(𝑘−2) k là độ dài modul n tính theo byte Lúc này, kẻ cơng chưa tìm m cụ thể chưa tính M Kẻ cơng tìm cách thu hẹp miền giá trị chứa m Để làm điều đó, kẻ cơng chọn số 𝑠𝑖 ngẫu nhiên cho: Nếu m*si tuân theo PKCS, 𝑠𝑖 tăng lên miền giá trị m thu hẹp lại Công thức tổng quát sau: 2𝐵+𝑟𝑖 𝑛 𝑠𝑖 ≤𝑚≤ 3𝐵−1 +𝑟𝑖 𝑛 𝑠𝑖 𝑚.𝑠𝑖 với 𝑟𝑖 = ⌊ 𝑛 ⌋ Trong thực tế để thu hẹp miền chứa m, kẻ công phải chọn 𝑠𝑖 tăng dần, cho m*si tuân theo PKCS Kết cuối m ∈ Mi = [a,a] (miền có giá trị a) Tiếp theo, để hiểu rõ kỹ thuật này, giảng trình bày chi tiết cách thức tiến hành thám mã Gọi C mã mà kẻ công thu Gọi hàm ktra_PKCS(a) hàm kiểm tra xem rõ b mã a có tuân theo PKCS không Kết hàm ktra_PKCS (a) hàm hàm tiên tri gửi 𝑘ℎ𝑖 𝑏 𝑡𝑢â𝑛 𝑡ℎ𝑒𝑜 𝑃𝐾𝐶𝑆 𝑘𝑡𝑟𝑎_𝑃𝐾𝐶𝑆 (𝑎) = { 𝑘ℎ𝑖 𝑏 𝑘ℎô𝑛𝑔 𝑡𝑢â𝑛 𝑡ℎ𝑒𝑜 𝑃𝐾𝐶𝑆 với a mã, b rõ a Gọi Mi miền giá trị chứa m (với 𝑖 ≥ 0, 𝑖 ∈ 𝑍 ) Cách thức thực hiện: - Bước 1: Phân tích rõ M dạng tuân theo PKCS + Nếu ktra_PKCS (C) =  Chọn s0 cách ngẫu nhiên (đặt m = 𝑠0 M mod n => 𝑐 = 𝑚𝑒 𝑚𝑜𝑑 𝑛 = 𝑀𝑒 (𝑠0 )𝑒 mod n = 𝐶 (𝑠0 )𝑒 mod n)  Gửi mã 𝑐 = 𝐶 (𝑠0 )𝑒 mod n đến hàm tiên tri  Nếu ktra_PKCS (𝑐) = tiếp tục chọn s0 khác giá trị chọn IT + Nếu ktra_PKCS (C) = m = M, c = C Sau bước 1, thu mã rõ tuân theo PKCS, rõ có quan hệ với rõ ban đầu - Bước 2: Khởi tạo miền giá trị chứa m PT Do m tuân theo PKCS (kết bước 1) nên có  m ∈ M0 = [2B, 3B – 1] với B = 28(𝑘−2) k là độ dài modul n tính theo byte Để thu nhỏ miền M0, tiến hành chọn tham số s1 bước Bước 3: Bắt đầu tìm kiếm mã phù hợp với PKCS  Tìm s1 nhỏ với điều kiện 𝑠1 ≥ 𝑛 3𝐵 cho ktra_PKCS( 𝑐 (𝑠1 )𝑒 mod n ) =  Tiến hành thu hẹp miền Mi Bước 4: Tìm kiếm mã phù hợp với PKCS, sử dụng tham số si để thu nhỏ miền [a, b] chứa m, sử dụng tham số r để băm [a, b] thành đoạn không giao có độ dài nhỏ  Nếu Mi-1 chứa đoạn tìm si nhỏ với điều kiện 𝑠𝑖 ≥ 𝑠𝑖−1 cho ktra_PKCS( c (si )e mod n ) = 111  Nếu Mi-1 chứa đoạn, tức Mi-1 = [a, b] chọn giá trị nhỏ ri si cho: ri ≥ b.si−1 −2B n 2B+ri n b ≤ si ≤ 3B+ri n cho ktra_PKCS( c (si )e mod n a ) = Bước 5: Thu hẹp miền giá trị chứa m 𝑀𝑖 = ⋃ {[𝑚𝑎𝑥 (𝑎, ⌈ (𝑎,𝑏,𝑟) 2𝐵 + 𝑟 𝑛 3𝐵 − + 𝑟 𝑛 ⌉) , 𝑚𝑖𝑛 (𝑏, ⌊ ⌋)]} 𝑠𝑖 𝑠𝑖 Đối với tất đoạn [a, b] ∈ Mi-1 a.si −3B+1 n b.si −2B ≤r≤ 2𝐵+𝑟.𝑛 Nếu với đoạn [a,b] ∈ Mi-1 mà 𝑚𝑎𝑥 (𝑎, ⌈ 𝑠𝑖 n 3𝐵−1+𝑟.𝑛 ⌉) ≥ 𝑚𝑖𝑛 (𝑏, ⌊ 𝑠𝑖 ⌋) loại ln đoạn [a,b] (vì đầu mút trái lớn đầu mút phải) Bước 6: Sau bước 5, miền Mi thu hẹp lại chia nhỏ dựa vào tham số r, si Lúc Mi cịn giá trị, kẻ công cần kiểm tra điều + Nếu Mi chứa phần tử, tức Mi= [a, a] m=a Nếu ktra_PKCS (C) = 𝑀 = 𝑚 (𝑠0 )−1 𝑚𝑜𝑑 𝑛 Nếu ktra_PKCS (C) = 𝑀 = m Trả giá trị M kết thúc IT     PT + Nếu Mi chứa nhiều phần tử, đặt i = i +1 quay bước để tiếp tục thu hẹp chia nhỏ miền Mi Trong kỹ thuật cơng lựa chọn mã thích nghi có điểm cần lưu ý m ∈ M0 = [2B, 3B - 1] Để giúp sinh viên hiểu rõ vấn đề này, giảng tiến hành chứng minh công thức Do m tuân theo PKCS nên hai byte m 00 02 Để thuận tiện, đặt: B=2 với k là độ dài modul n tính theo byte 8(𝑘−2) => k - kích thước modul n trừ byte 00 02 Khi B = 01 00 00 … 00 00 k - byte toàn Do m tuân theo PKCS nên giá trị m phải nằm 00 02 00 00… 00 (tức 2B) 00 02 FF FF … FF (tức 3B – 3B = 00 03 00 00 00) Như m ∈ [2B, 3B - 1] Kết luận: Trong thuật toán nhận thấy tham số si điều khiển trình nhốt m0 vào khoảng [a, b] Đặc biệt độ lớn khoảng [a, b] giảm dần Tựu chung m0 thuộc khoảng đóng thuộc tập hợp Mi tất bước trung gian i Số lượng khoảng đóng tập hợp Mi giảm dần xuất khoảng trống Một Mi chứa khoảng đóng độ dài khoảng giảm nửa sau bước Điều kiện để thuật toán nhanh thành công nhờ kết 2B ≤ ms mod n < 3B cho phép nhanh chóng tìm mã tuân theo PKCS tìm si trung gian Ngồi thuật tốn cịn nhanh thành cơng số lượng khoảng đóng độ dài chúng giảm nhanh theo chiều hướng sau bước lại giảm nửa Cuối dẫn đến tập hợp Mk =[m0 , m0 ] với khoảng đóng có độ dài Trên thực tế mặt trung bình sau 220 mã lựa chọn cần thiết đưa vào hàm tiên tri giúp cho kẻ cơng khám phá hồn tồn m0 từ tính m Chính mà cơng cịn gọi “Tấn cơng triệu thông báo” Gần vào năm 2012 chuyên gia thực hóa cơng làm giảm số lượng mã lựa chọn cần thiết đưa vào hàm tiên tri 50 ngàn mã Kỹ thuật công đặc biệt hiệu thiết bị SmartCard kiểu USB Token HSM có hỗ trợ chức nhập khóa bí mật có lập mã Tấn cơng giải mã mã RSA kích thước 1024 bit theo chuẩn PKCS#1 phiên 1.5 tốn vài chục phút vài 4.4.3 Thám mã kênh bên IT Để phòng tránh kỹ thuật cơng cần phải thực số thay đổi sau: 1) không đưa câu phúc đáp không đưa thông báo Như dẫn đến việc kiểm tra điều kiện tuân theo PKCS khơng bình thường gặp khó khan 2) áp dụng số mơ hình chuyển đổi an tồn chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) PT Ngoài số kỹ thuật công phổ biến trên, thực tế tồn số kiểu công khác Các kỹ thuật công không trực tiếp công vào kỹ thuật mã hóa mà tìm cách cơng lên thiết vị phần cứng phần mềm phục vụ cho q trình mã hóa giải mã Từ hiểu biết hoạt động thiết bị, kẻ công lấy thơng tin cần thiết mà khơng cần cơng vào thuật tốn mã hóa Nói cách khác, tất thuật toán giao thức mật mã thực cách an tồn kẻ cơng lấy thơng tin bí mật q trình làm việc phần cứng mã hóa Thậm chí, khơng thể lấy thơng tin bí mật kẻ cơng phá hỏng phần cứng, công từ chối dịch vụ hay tạo lỗi khác hệ thống Có nhiều kiểu công phần cứng khác nhau, chúng chia thành kiểu bao gồm: công kênh bên (side channel attacks), công điểm yếu (fault attacks) can thiệp vật lý (physical tempering) Trong giảng vào trình bày số khái niệm kỹ thuật công kênh bên Kênh bên khu vực thơng tin tạo q trình hoạt động thiết bị phần cứng mật mã Ví dụ tiếng ồn (sound), xạ tia hồng ngoại (infrared radiation), độ trễ thời gian (time delays), nguồn tiêu thụ (power consumption) xạ điện từ (electromagnetic radiation) Thơng tin rị rỉ phân tích thống kê để tìm mối liên quan đến phép tính cài đặt thiết bị mật mã khóa mật mã, đầu mối thông tin quan trọng cho kẻ công Các công nghệ công can thiệp trực tiếp vào phần cứng cần có che đậy hay xóa dấu vết sau đó, cịn cơng 113 kênh bên lấy thông tin quan trọng hệ thống hoạt động bình thường mà khơng làm thay đổi phần cứng Nhiều tham số ứng dụng công kênh bên, phổ biến tham số : thời gian, nguồn điện tiêu thụ tín hiệu xạ Một số kỹ thuật thám mã kênh bên sau : - Tấn công thời gian (timing attacks) - Tấn công phân tích lượng - Tấn cơng dựa vào lỗi ngẫu nhiên - Tấn cơng phân tích lượng Trong mục 4.3.4 giảng trình bày khái niệm cách thức số loại trong kỹ thuật công kênh bên Tiếp theo, tìm hiểu kỹ thuật cơng dựa lỗi ngẫu nhiên Tấn công dựa lỗi ngẫu nhiên : dạng công điểm yếu (fault attacks) với định lý phần dư Trung Hoa CRT (Chinese Remainder Theorem) PT IT Mục đích kỹ thuật cơng dựa lỗi ngẫu nhiên phân tích thừa số nguyên tố modul chung (nghĩa tìm p q) Về nguyên tắc, có lỗi đơn xảy q trình ký, kẻ cơng dễ dàng tính thừa số ngun tố modul Vấn đề lỗi xảy sinh chữ ký máy tính hoạt động khơng gây nên lỗi tính tốn Hay nói cách khác chép ghi, bit dịng bit bị thất lạc (sự hoạt động khơng nguyên nhân xung đột điện từ sâu phần cứng, lỗi sớm tìm thầy phiên chíp Pentium) Lưu ý rằng: thực tế kỹ thuật công kênh bên là kỹ thuật công phức tạp khó thực để thực thành công kỹ thuật công này, kẻ công phải thực nhiều công đoạn yêu cầu nhiều thông tin Đặc điểm kỹ cơng sau: - Q trình cài đặt giải mã ký số hệ mật RSA sử dụng CRT nhằm cải thiện tốc độ tính tốn C = Md mod n Việc tính chữ kí C diễn sau:  Tính dp = d mod (p - 1) dp = d mod (q - 1)  Dùng thuật tốn bình phương nhân tính Cp = Mdp mod p Cq = Mdq mod q  Dùng CRT tính chữ ký C: o chọn số nguyên a nhỏ thỏa mãn 𝑎 ≡ (𝑚𝑜𝑑 𝑝) { 𝑎 ≡ (𝑚𝑜𝑑 𝑞) o chọn số nguyên b nhỏ thỏa mãn 𝑏 ≡ (𝑚𝑜𝑑 𝑝) { 𝑏 ≡ (𝑚𝑜𝑑 𝑞) o Tính C = a.Cp +b.Cq (mod n) Cách thức tiến hành công: Khi có lỗi đơn xảy q trình ký C Cp Cq sai Giả sử Cp ̂𝑞 ) Kết chữ ký 𝐶̂ = 𝑎 𝐶𝑝 + 𝑏 𝐶 ̂𝑞 Kẻ đúng, Cq không (ký hiệu 𝐶 công nhận 𝐶̂ biết chữ ký sai 𝐶̂ 𝑒 ≠ 𝑀 𝑚𝑜𝑑 𝑛 Kẻ công tiến hành sau : + Gửi rõ M bất kỳ đến nạn nhân yêu cầu chữ ký C M Sau nhận C, Cemod n ≠M kẻ cơng biết chữ ký bị sai 𝑛 + Gọi chữ ký sai 𝐶̂ Kẻ cơng tính p = UCLN (𝑀 − 𝐶̂ 𝑒 , n) q = 𝑝 Đến đây, kẻ cơng tìm tham số cần tìm Trong kỹ thuật cơng dựa vào lỗi ngẫu nhiên, có điểm cần lưu ý kẻ công dựa vào lỗi ngẫu nhiên tính 𝑛 tham số p, q dựa vào công thức p = UCLN (𝑀 − 𝐶̂ 𝑒 , n) q = Để sinh viên 𝑝 Lại có : 𝐶 = 𝑎 𝐶𝑝 + 𝑏 𝐶𝑞 IT hiểu rõ vấn đền này, giảng tiến hành chứng minh tính đắn của cơng thức - Giả sử Cq bị lỗi 𝐶̂ = 𝑎 𝐶𝑝 + 𝑏 𝐶̂𝑞 => 𝐶 − 𝐶̂ = 𝑎 𝐶𝑝 + 𝑏 𝐶𝑞 − 𝑎 𝐶𝑝 − 𝑏 𝐶̂𝑞 = 𝑏 (𝐶𝑞 − 𝐶̂𝑞 ) PT Có b ⋮ 𝑝 (do theo CRT, chọn b số nguyên chia hết cho p chia q dư 1) =>(𝐶 − 𝐶̂ ) ⋮ 𝑝 Nếu (𝐶 − 𝐶̂ ) khơng chia hết cho q UCLN (𝐶 − 𝐶̂ , n) = p Có 𝐶 𝑒 − 𝐶̂ 𝑒 = (𝐶 − 𝐶̂ )(𝐶 𝑒−1 + 𝐶 𝑒−2 𝐶̂ + ⋯ + 𝐶̂ 𝑒−1 ) Vì (𝐶 − 𝐶̂ ) ⋮ 𝑝 => (𝐶 𝑒 − 𝐶̂ 𝑒 ) ⋮ 𝑝 => UCLN (𝐶 𝑒 − 𝐶̂ 𝑒 , n) = p Mặt khác M = Cemod n Từ chứng minh UCLN (𝑀 − 𝐶̂ 𝑒 , n) = p 4.5 Câu hỏi ôn tập Câu Hãy trình bày khái niện thám mã? Câu Hãy trình bày số kỹ thuât thám mã? Cấu Hãy trình bày quy trình thám mã? Cấu Hãy trình bày phương pháp thám mã vi sai? Câu Hãy trình bày phương pháp thám mã tuyến tính? Câu Hãy trình bày phương pháp thám mã nội suy? Câu Hãy trình bày số kỹ thuật thám mã dựa sở toán học giải thuật mã hóa khóa bất đối xứng? Câu Hãy trình bày thám mã lựa chọn mã thích nghi? 115 PT IT Câu Hãy trình bày thám mã kênh bên giải thuật mã hóa khóa bất đối xứng TÀI LIỆU THAM KHẢO [1] Nguyễn Bình, Ngơ Đức Thiện, Cơ sở mật mã học, Học Viện Công Nghệ Bưu Chính Viễn Thơng, 2013 [2] Behrouz A Forouzan, Introduction to cryptography and network security, Moscow, 2010 [3] Nguyễn Khanh Văn, Cơ sở an tồn thơng tin, Đại học Bách khoa Hà Nội, 2014 [4] Edward Schaefer, An introduction to cryptography and cryptanalysis, Santa Clara University, 2014 [5] Douglas R Stinson, Cryptography: Theory and Practice, Chapman & Hall / CRC, 2002 [6] James Nechvatal, Elaine Barker, Lawrence Bassham, William Burr, Morris Dworkin, James Foti, Edward Roback, Report on the Development of the Advanced 2000 IT Encryption Standard (AES), National Institute of Standards and Technology, October, [7] NIST, Advanced Encryption Standard (AES) FIPS_197, November 26, 2001 PT [8] Dương Anh Đức, Trần Minh Triết Thuật tốn mã hóa ứng dụng Đại Học Khoa Học Tự Nhiên, Đại Học Quốc Gia Hà Nội 2005 [9] Eli Biham, Adi Shamir, Diffirential Cryptanalysis of DES-like Cryptosystems [10] Mitsuru Matsui Linear Cryptanalysis of DES-Cipher [11] Thomas Jakobsen, Lars R Knudsen The Interpolation Attack on Block Ciphers [12] Mark Stamp, Richard M Low Applied Cryptanalysis: Breaking Ciphers in the Real World April 2007 424 pages ISBN: 978-0-470-11486-5 [13] Dan Boneh (1999), Twenty Years of Attacks on the RSA cryptosystem ... Môn học cung cấp kiến thức nâng cao mật mã học, bao gồm: số giải thuật mã hóa bí mật cơng khai tiên tiến, mật mã sở đường cong Elliptic, kỹ thuật thám mã thực tế Bài giảng ? ?Mật mã học nâng cao? ??... gia hay tổ chức có chế mã hóa riêng để bảo vệ hệ thống thơng tin Môn học ? ?Mật mã học nâng cao? ?? môn chuyên ngành thuộc chương trình đào tạo đại học ngành An tồn thơng tin Học Viện Cơng Nghệ Bưu... ảnh với độ bảo mật cao 1.2.3.2 Quy trình mã hóa giải mã RC6 Trước tìm hiểu quy trình mã hóa giải mã giải thuật mã hóa RC6, tìm hiểu số phép tốn biến đổi thực q trình mã hóa giải mã Thuật toán

Ngày đăng: 19/03/2021, 17:07

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w