giới thiệu về mật mã hóa

5 461 0
giới thiệu về mật mã hóa

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

Thông tin tài liệu

Lý thuyết Thông tin BÀI 14 GIỚI THIỆU VỀ MẬT MÃ HOÁ 14.1 Giới thiệu 14.2 Một số phép mật mã đơn giản 14.3 Bẻ gãy (breaking) hệ thống mật mã 14.4 Kết hợp phương pháp mật mã hoá 14.1 Giới thiệu Mã hoá bảo mật có lịch sử lâu đời, không trình bày lịch sử mà trình bày vấn đề Trước hết trình bày ý tưởng mật mã hoá Mật mã hoá Mật mã hoá việc biến đổi thông báo cho hiểu ngoại trừ người nhận mong muốn Để thuận tiện trình bày, định nghĩa kí hiệu cho khái niệm Thông báo (message, plaintext) Thông báo chuỗi hữu hạn kí hiệu lấy từ bảng chữ ∑ thường kí hiệu m Ở ∑ thường bảng chữ tiếng Anh gồm 26 kí tự, có thêm kí tự khoảng trắng Phép mật mã hoá e(m) e(m) kí hiệu biểu diễn việc mật mã hoá m Trong thực tế, mật mã hoá xem hàm, ánh xạ hay giải thuật với tập thông số (ngoài thông số cần có thông báo cần mã hoá) Từ có khái niệm khoá Khoá (key) Khoá thông số đầu vào phép mã hoá mà thông báo thường kí hiệu k Một phép mật mã hoá có nhiều khoá Chuỗi mật mã (cipher, ciphertext, cryptogram) c = e(m, k) gọi chuỗi mật mã Phép giải mật mã d(c, k) d(c, k) kí hiệu biểu diễn việc giải mật mã hoá Dĩ nhiên d(c, k) = m Hệ thống mật mã (cryptosystem) Một cách hình thức, hệ thống mật mã định nghĩa ba (M, K, C) Trong M tập thông báo m bảng chữ ∑1, K tập hữu hạn khoá k, C tập chuỗi mật mã c, có thêm giả thiết tồn hàm hay giải thuật e d cho e: M × K → C d: C × K → M cặp (m, k) ∈ M × K, d(e(m, k) , k) = m 14.2 Một số phép mật mã đơn giản Phép thay đơn giản Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 96 Lý thuyết Thông tin Trong phép này, khoá hoán vị π bảng chữ ∑ kí hiệu thông báo thay ảnh qua hoán vị π Thường thường, khoá biểu diễn chuỗi 26 kí tự, chẳng hạn khoá UXEOS…, biểu thị xuất hiên A thông báo thay U, B thay X, C thay E, D thay O, E thay S, … Các khoảng trắng thường giữ nguyên không bị thay Phép thay n-gram Thay thay kí tự, người ta thay cho cụm kí tự (gọi digram) cho cụm kí tự (gọi trigram) tổng quát cho cụm n kí tự (gọi n-gram) Nếu bảng chữ ∑ gồm 26 kí tự tiếng Anh phép thay n-gram có khoá hoán vị 26n n-gram khác Trong trường hợp digram hoán vị gồm 262 digram biểu diễn tốt dãy chiều 26 × 26 hàng biểu diễn kí hiệu đầu tiên, cột biểu diễn kí hiệu thứ hai, nội dung ô biểu diễn chuỗi thay Ví dụ bảng chiều sau biểu thị AA thay EG, AB thay RS, BA thay BO, BB thay SC, … … A B EG RS A B BO SC … Phép hoán vị bậc d Đối với số nguyên dương d bất kỳ, chia thông báo m thành khối có chiều dài d Rồi lấy hoán vị π 1, 2, …, d áp dụng π tới khối Chẳng hạn d = π = (4 5), có nghĩa hoán vị (1 5) thay hoán vị (4 5) Ví dụ có thông báo m = JOHN |IS A |GOOD | ACTOR qua phép mật mã trở thành chuỗi mật mã sau c = NJHO |AI S |DGOO | OATCR Để giải mã ngược lại ta phải tìm hoán vị ngược π-1 Trong trường hợp có π-1 = (2 5) Tổng quát π = ( a1i1 a 2i … a ni n ) a ji j biểu thị vị trí thứ j chứa giá trị ij, π-1 = ( a j11 a j 2 a j n n ) có nghĩa duyệt π vị trí thứ i có chứa giá trị j π-1 vị trí thứ j chứa giá trị i Phương pháp Vigenère Caesar Trong phương pháp này, khoá bao gồm chuỗi d kí tự Chúng viết lặp lại bên thông báo cộng modulo 26, với ý bảng chữ đánh số từ A = đến Z = 25 Các kí tự khoảng trắng giữ nguyên không cộng Chẳng hạn với d = 3, khoá chuỗi ABC thông báo m= M A R Y I S G O O D với khoá k= A B C A B C A B C A trở thành c= M B T Y J U G P Q D Trong trường hợp d = 1, khoá kí tự đơn, gọi phương pháp Caesar cho sử dụng lần đầu Julius Caesar Phương pháp Playfair Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 97 Lý thuyết Thông tin Đây sơ đồ dựa thay digram khoá hình vuông kích thước × chứa xếp 25 kí tự bảng chữ (không tính kí tự J xuất thay I) Giả sử có ma trận khoá sau B Y D G Z W S F U P L A R K X C O I V E Q N M H T Sự thay thực sau Chẳng hạn digram cần thay AV hình chữ nhật có A, V hai đỉnh chéo thay A đỉnh kề theo đường thẳng đứng O tương tự thay V đỉnh kề theo đường thẳng đứng K Tương tự digram cần thay VN chuỗi thay HO Nếu kí tự digram nằm hàng ngang chuỗi thay kí tự bên phải chúng Chẳng hạn digram WU chuỗi thay SP, digram FP chuỗi thay UW, digram XR chuỗi thay LK Tương tự kí tự digram nằm hàng dọc chuỗi thay kí tự bên chúng Chẳng hạn digram SO chuỗi thay AN, digram MR chuỗi thay DI, digram GH chuỗi thay UG Trong trường hợp digram cặp kí tự giống chẳng hạn OO kí tự kèm khoảng trắng chẳng hạn B có nhiều cách xử lý, cách đơn giản giữ nguyên không biến đổi digram Phương pháp khoá tự động (autokey) Trong phương pháp này, có khoá “mồi” (priming key), mà thường ngắn sử dụng để khởi đầu trình mật mã hoá Quá trình mã hoá tiếp tục cách sử dụng thân thông báo lẫn chuỗi mật mã (cryptogram) chạy Xét ví dụ sau: Giả sử khoá mồi VENUS thông báo SEND SUPPLIES Đầu tiên sử dụng thông báo khoá chạy, mã hoá phép cộng mod 26 (Chú ý khoảng trắng bỏ qua) m: S E N D S U P P L I E S k: V E N U S S E N D S U P Chuỗi mật mã N I A X K M T C O A Y H Sử dụng chuỗi mật mã khoá với khoá mồi cũ kết mã hoá sau m: k: Chuỗi mật mã S V N E E I N N A D U X S S K U N H P I X P A P L X I I K S E M Q S T L Phương pháp biến đổi tuyến tính Ý tưởng chia thông báo thành khối có chiều dài d gắn khối với bộ-d (hay gọi vectơ) x số nguyên, nhân vectơ x với ma trận không suy biến (tức có định thức khác 0) chuỗi mật mã y = Ux Việc giải mã thực cách nhân y với ma trận nghịch đảo U-1 U, x = U-1y Để đảm bảo phép toán thực trường, tính toán tính modulo số nguyên tố Chẳng hạn lấy bảng chữ ∑ gồm 37 kí tự sau đánh số từ đến 36: 10 chữ số từ đến 9, khoảng trắng, 26 kí tự chữ Với bảng chữ này, chọn d = ma trận làm khoá là: Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 98 Lý thuyết Thông tin 3 13 k=U=    22 15 Thông báo m = FRIEND biểu diễn m = FR | IE | ND = 15, 27 | 18, 14 | 23, 13 Thì  13 15 18 23  26 14 16   22 15 ×  27 14 13  = 32 14 35       Vậy chuỗi mật mã c = 26, 32 | 14, 14 | 16, 35 = Q, W | E, E | G, Z = QWEEGZ 14.3 Bẻ gãy (breaking) hệ thống mật mã Bẻ gãy hệ thống mật mã có nghĩa gì? Những chuyên gia mật mã hay kẻ công thường giả thiết biết đầy đủ thông tin hàm mã hoá e hàm giải mã d Thêm vào đó, họ nhiều thông tin hỗ trợ thống kê ngôn ngữ, kiến thức ngữ cảnh, vân vân Họ chắn chắn có chuỗi mật mã đó, tất mà họ thiếu khoá k từ học sử dụng d để giải mã c cách xác Điều biểu diễn thành hình ảnh bên Bộ phát sinh khoá k k m Bộ mã hoá e k c = e(m, k) Bộ giải mã d m Những kẻ công Hình 14.1 Có ba khả công mà dự đoán đối phương công hệ thống chúng ta: (1) Tấn công dựa chuỗi mật mã (crytogram-only attack): Đây trường hợp mô tả đối phương biết vài mẫu chuỗi mật mã c (2) Tấn công dựa văn biết (known-plaintext attack): Trường hợp thực tế trường hợp (1) Trong trường hợp người công giả thiết biết độ dài đáng kể văn thông báo chuỗi mật mã tương ứng, từ cố gắng tìm khoá Đây công dội khó chống đỡ nhiều ngày xem chuẩn an toàn tối thiểu phải đạt Thật vào thời điểm tại, tiêu chuẩn thích hợp để đánh giá hệ thống bảo mật khả để chống đỡ công chí mạnh sau (3) Tấn công dựa văn chọn (chosen-plaintext attack): Trong trường hợp này, người công có số lượng tuỳ ý cặp thông báo chuỗi mật mã tương ứng (m, c) Không khó để thấy hệ thống (hay phương pháp) mật mã mô tả chống đỡ công dựa văn chọn Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 99 Lý thuyết Thông tin Trường hợp liên quan đến khả bị công công dựa văn biết phức tạp Chẳng hạn, xét hệ thống đơn giản – hệ thống dùng phương pháp thay đơn giản – cho khoá k hoán vị 26 chữ A → P, B → F, vân vân Bây thông báo m gởi “silly message” bao gồm chữ A lặp lại n lần, chuỗi mật mã c tương ứng, chữ P lặp lại n lần Không thành vấn đề n lớn bao nhiêu, cặp thông báo - chuỗi mật mã cụ thể không sinh khoá k Tuy nhiên không khó để tin rằng, trung bình, cho chiều dài vừa đủ thông báo chuỗi mật mã, hệ thống hay phương pháp mật mã bị bẻ gãy (crack) Ở xem ví dụ đơn giản cách bẻ gãy Ví dụ 14.1 Giả sử hệ thống mật mã biết dựa phương pháp Caesar với bảng chữ gồm 27 kí tự đánh số sau A = 0, B = 1, …, Z = 25, khoảng trắng = 26 phép cộng thực theo mod 27 Chúng ta chộp chuỗi mật mã c sau HWXGOQCCZOXGOXBORCST Chúng ta đề nghị cách công sau để tìm khoá chưa biết k0 Chọn khoá dự tuyển cho k0 cách ngẫu nhiên đổi ngược chuỗi mật mã, theo kí tự, thông báo có ý nghĩa Vì vậy, chọn k0 = E, đổi ngược c nhận DSTC … ngữ cảnh thấy E khoá k0 Lại chọn k0 = Z, đổi ngược c thành JYZ … bác bỏ Z Sự lựa chọn (? theo linh cảm) k0 = P nhanh chóng thấy chuỗi mật mã biến đổi thành chuỗi văn có nghĩa THIS BOOK IS IN CODE Tại ngữ cảnh không đảm bảo cặp thông báo-khoá mà gởi chuỗi mật mã Tuy nhiên thủ tục kiểm tra khoá khác tương tự 14.4 Kết hợp phương pháp mật mã hoá Một cách tự nhiên để tăng tính bảo mật kết hợp nhiều phương pháp mật mã hoá với Hai cách vậy, mà Shannon đề nghị từ năm 1949, tạo nên sở nhiều hệ thống mật mã thực tế Đó (1) Cách dùng tổng trọng số: Nếu S1, S2, …, Sn hệ thống (hay phương pháp) mật mã hoá có không gian thông báo < pi < n ∑ pi = tổng chúng i =1 n ∑ pi S i hệ thống mật mã dùng Si với xác suất pi i =1 (2) Cách dùng tích: Áp dụng hệ thống (hay phương pháp) nối tiếp nhau, đầu hệ thống đầu vào hệ thống Dĩ nhiên tập hợp đầu hệ thống trước phải tập tập hợp đầu vào hệ thống sau Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 100

Ngày đăng: 04/06/2016, 12:50

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan