MỘT SỐ PHƯƠNG PHÁP MÃ HÓA DỮ LIỆU Mở đầu Ngày hoạt động người thông tin đóng vai trò quan trọng thiếu Xã hội phát triển nhu cầu trao đổi thông tin thành phần xã hội ngày lớn Mạng máy tính đời mang lại cho người nhiều lợi ích việc trao đổi xử lý thông tin cách nhanh chóng xác Chính từ thuận lợi đặt cho câu hỏi, liệu thông tin từ nơi gửi đến nơi nhận có đảm bảo tuyệt đối an toàn, đảm bảm thông tin ta không bị truy cập bất hợp pháp Thông tin lưu giữ, truyền dẫn, sử dụng mạng lưới thông tin công cộng bị nghe trộm, chiếm đoạt, xuyên tạc phá huỷ dẫn đến tổn thất lường Đặc biệt số liệu hệ thống ngân hàng, hệ thống thương mại, quan quản lý phủ thuộc lĩnh vực quân lưu giữ truyền dẫn mạng Nếu nhân tố an toàn mà thông tin không dám đưa lên mạng hiệu suất làm việc hiệu suất lợi dụng nguồn liệu bị ảnh hưởng Trước yêu cầu cần thiết đó, việc mã hoá thông tin đảm bảo an toàn cho thông tin nơi lưu trữ thông tin truyền mạng Khái niệm mật mã học Kỹ thuật mật mã thông qua việc biến đổi mã hoá thông tin, biến đổi thông tin nhạy cảm, vấn đề mật thành văn tự mã hoá có dạng hỗn loạn, làm cho bọn tin tặc khó lòng mà đọc hiểu được, từ đạt hai mục đích: là, làm cho bọn tin tặc làm để giải mã nên thu thông tin có ý nghĩa chuỗi mật mã hỗn loạn đó; hai làm cho tin tặc khả làm giả thông tin với chuỗi mật mã hỗn loạn Khoa học nghiên cứu kỹ thuật mật mã gọi mật mã học Mật mã học bao gồm hai nhánh, mật mã học lập mã mật mã học phân tích Mật mã học lập mã với ý tiến hành mã hoá thông tin để thực việc che giấu thông tin, mật mã học phân tích ngành học nghiên cứu phân tích giải dịch mật mã Hai đối lập với nhau, lại thúc đẩy lẫn Dùng phương pháp mật mã che dấu bảo hộ thông tin mật, làm cho người chưa uỷ quyền lấy thông tin, thông tin giấu kín gọi văn rõ, mật mã đem văn rõ biến đổi thành loại hình khác, gọi văn mật Sự biến đổi văn rõ thành văn mật gọi mã hoá bảo mật, trình người thu nhận hợp pháp khôi phục từ văn mật trở thành văn rõ gọi trình giải mã (hoặc giải mật) Người thu nhận phi pháp có ý đồ phân tích từ văn mật thành văn rõ, gọi giải dịch Các thành phần hệ mật mã Một hệ mật (P, C, K, E, D) thoả mãn điều kiện sau: + P tập hữu hạn rõ + C tập hữu hạn mã + K (không gian khoá) tập hữu hạn khoá + Đối với k∈K có quy tắc mã ek: P -> C quy tắc giải mã tương ứng dk∈D Mỗi ek: P -> C dk: C -> P hàm mà: d k(ek(x)) = x với rõ x∈P Tính chất tính chất chủ yếu Nội dung rõ x mã hoá ek mã nhận sau giải mã d k ta phải thu rõ ban đầu x Trong trường hợp hàm mã hoá e k phải hàm đơn ánh, không việc giải mã thực cách tường minh Phân loại hệ mật mã Hiện người ta thiết kế nhiều loại hệ thống mật mã, lấy khoá mật mã làm tiêu chuẩn phân hệ mật mã thành hai loại: - Hệ mật mã đối xứng (còn gọi mật mã khoá đơn mật mã khoá riêng): Trong hệ mật mã này, khoá mật mã mã hoá bảo mật giống với khoá giải mã thực tế đẳng cấp Lúc khoá mật mã cần phải có đường truyền an toàn để truyền đưa khoá mật mã từ phía người truyền cho phía người nhận Đặc điểm mật mã đối xứng gia công bảo mật giải mã sử dụng khoá mật mã Do tính an toàn mật mã an toàn khoá mật mã khoá mật mã bị tiết lộ, hệ thống mật mã bị phá vỡ Mật mã đối xứng có ảnh hưởng phép tính DES cục tiêu chuẩn quốc gia Mỹ công bố vào năm 1977 Ưu điểm: Tính an toàn cao, tốc độ giải mã nhanh Nhược điểm: + Theo mở rộng quy mô mạng lưới, việc quản lý khoá mật mã trở thành việc khó khăn + Không có cách giải vấn đề xác nhận thông tin + Thiếu lực kiểm tra tự động tiết lộ khoá mật mã - Hệ mật mã bất đối xứng (còn gọi mật mã khoá công khai mật mã khoá đôi): Trong hệ mật mã trình mã hoá giải mã có chìa khoá khác nhau, lúc không cần có đường truyền an toàn để truyền đưa khoá mật mã mà cần phát sinh khoá mã chỗ để tạo khoá giải mã đồng thời lấy để khống chế thao tác giải mã Mật mã bất đối xứng thể chế mật mã loại W.Diffie M.E Hellman đề xuất năm 1976 Do trình mã hoá giải mã thể chế mật mã bất đối xứng không khoá mã bảo mật công khai, nữa, yêu cầu bảo mật khoá giải mã, mật mã bất đối xứng không tồn vấn đề quản lý khoá mật mã Mật mã bất đối xứng ưu điểm có khả ký tên chữ số số chức Mật mã bất đối xứng tiếng thể chế mật mã RSA ba người Rivest, Shamir Adleman đề xuất năm 1977 Khuyết điểm mật mã bất đối xứng là: phép tính mật mã tương đối phức tạp, tốc độ giải mã chậm ⇒ Do đó, việc bảo mật liệu mạng nên dùng chế bảo mật hỗn hợp kết hợp mật mã đối xứng mật mã bất đối xứng, tức giải mã dùng mật mã đối xứng, truyền đưa khoá mật mã dùng mật mã bất đỗi xứng Như tức giải khó khăn việc quản lý khoá mật mã, vừa lại giải vấn đề tốc độ giải mã Không hoài nghi nữa, phương pháp tương đối tốt để giải vấn đề an toàn thông tin truyền đưa mạng Một số phương pháp mã hóa 5.1 Mã hóa cổ điển Mã hoá cổ điển phương pháp mã hoá đơn giản xuất lịch sử ngành mã hoá Thuật toán đơn giản dễ hiểu Những phương pháp mã hoá cở sở cho việc nghiên cứu phát triển thuật toán mã hoá đối xứng sử dụng ngày Trước mã hoá rõ thành mã phương pháp mã hoá, ta xét thiết lập tương ứng ký tự thặng dư theo modulo 26 sau: A↔0, B↔1, …, Z↔25 hoặc: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a) Mật mã CAESAR Một số người sử dụng mật mã biết sớm nhất, julias caesar (xê-da) Ông làm cho thư trở nên bí mật cách dịch chữ ba chữ phía trước bảng chữ ( ba chữ cuối thành ba chữ đầu tiên) Đây ví dụ mã hoá, tức trình làm cho thư trở nên bí mật Phương pháp mã hoá CAESAR biểu diễn hàm f, hàm gán cho số nguyên không âm p, p ≤ 25, số nguyên f(p) tập {0, 1, 2, … , 25} cho: f(p)=(p+3) mod 26 Như vậy, phiên mã hoá thư, chữ biểu diễn p thay chữ biểu diễn bởi: (p+3) mod 26 Ví dụ: dùng mật mã CAESAR chuyển thư “meet you in the park” thành thư bí mật Trước hết, thay chữ thư gốc thành số, ta được: 12 4 19 24 14 20 13 19 15 17 10 thay số p f(p)=(p+3) mod 26, ta được: 15 7 22 17 23 11 16 22 10 18 20 13 dịch trở lại chữ cái, ta thư mã hoá là: PHHW BRX LQ WKH SDUN Để phục hồi lại thư gốc mã hoá theo mật mã CAESAR, ta cần phải dùng hàm ngược f -1 f: f -1(p)=(p-3) mod 26 Nói cách khác, để tìm lại thư gốc, chữ lùi lại ba chữ bảng chữ cái, với ba chữ chuyển thành ba chữ cuối tương ứng bảng chữ Nhận xét: phương pháp mã hoá CAESAR độ an toàn cao Phương pháp mã hoá dễ bị khám phá cách dựa vào tần xuất xuất chữ thư b) Mã thay Mã thay mô tả sau: Cho P = C = Z26 K chứa hoán vị 26 kí hiệu 0, 1, …,25 với hoán vị π ∈ K, ta định nghĩa eπ(x) = π(x) dπ(y) = π-1(y) π-1 hoán vị ngược π Ví dụ: mã hoá rõ: illustrate sử dụng mã thay với khoá hoán vị sau: Với khoá hoán vị rõ: illustrate tương ứng với mã sau (sử dụng hàm mã hoá eπ(x) = π(x)): ZBBUVMCXMH Hàm giải mã phép hoán vị ngược, điều thực cách viết hàng thứ hai lên trước xếp theo thứ tự chữ Ta nhận được: Sử dụng phép hoán vị ngược ta biến đổi mã: ZBBUVMCXMH thành rõ sau: illustrate Nhận xét: với mã thay thế, ta có không gian khoá tương đối lớn (mỗi khoá hoán vị 26 kí hiệu 0, 1, …, 25) khó bị thám theo phương pháp tìm khóa vét cạn, chí máy tính c) Mã vigenère Sử dụng mã vigenère, ta gán cho khoá k chuỗi kí tự có độ dài m gọi từ khoá Mật mã vigenère mã hoá đồng thời m kí tự: phần tử rõ tương đương với m kí tự Mã vigenère mô tả sau: Cho m số nguyên dương cố định định nghĩa P=C=K=(Z) m với khoá k=(k1, k2, …, km), ta xác định: ek(x1, x2, …, xm)=(x1+k1, x2+k2, …, xm+km) dk(y1, y2, …, ym)=(y1-k1, y2-k2, …, ym-km) tất phép toán thực Z26 Ví dụ: mã hoá rõ: thiscryptosystemisnotsecure với m=6 từ khoá CIPHER mã vigenère Từ khóa CIPHER tương ứng với dãy số k=(2, 18, 15, 7, 4, 17) Biến đổi phần tử rõ thành thặng dư theo modulo 26, viết chúng thành nhóm cộng với từ khoá theo modulo 26 sau: Dãy kí tự: 21, 15, 23, 25, 6, 8, 0, 23, 8, 21, 22, 15, 20, 1, 19, 19, 12, 9, 15, 22, 8, 25, 8, 19, 22, 25, 19 Sẽ tương ứng với xâu mã là: VPXZGIAXIVWPUBTTMJPWIZITWZT Để giải mã ta biến đổi phần tử mã thành thặng dư theo modulo 26, viết chúng thành nhóm trừ với từ khoá theo modulo 26 kết ta rõ sau: thiscryptosystemisnotsecure Nhận xét: ta thấy số từ khoá với số độ dài m mật mã vigenère 26m , vậy, khó bị thám theo phương pháp tìm khoá vét cạn, chí với giá trị m nhỏ, phương pháp tìm khoá vét cạn phải yêu cầu thời gian lớn d) Mã hoán vị Ý tưởng mã hoán vị giữ ký tự rõ không thay đổi thay đổi vị trí chúng cách xếp lại ký tự Mã hoán vị mô tả sau: Cho m số nguyên dương xác định Cho P=C=(Z 26)m K gồm tất hoán vị {1, …, m} Đối với khoá π (tức hoán vị) ta xác định eπ(x1, …, xm)=(xπ(1), …, xπ(m)) dπ(y1, …, ym)=(yπˉạ(1) , … , yπˉạ(m) ) π -1 hoán vị ngược π Ví dụ: mã hoá rõ: shesellsseashellsbytheseashore, sử dụng mã hoán vị, với m=6 khoá phép hoán vị π sau: Trước tiên ta nhóm rõ thành nhóm ký tự: shesel / lsseas / hellsb / ythese / ashore Bây nhóm chữ xếp lại theo hoán vị π, ta có: EESLSH / SALSES / LSHBLE / HSYEET / HRAEOS Như mã là: EESLSHSALSESLSHBLEHSYEETHRAEOS Để giải mã ta sử dụng phép hoán vị ngược π π -1 có dạng: Ta nhóm mã thành nhóm ký tự: EESLSH / SALSES / LSHBLE / HSYEET / HRAEOS Mỗi nhóm chữ xếp lại theo hoán vị ngược π -1 ta có: shesel / lsseas / hellsb / ythese / ashore Cuối ta thu rõ là: shesellsseashellsbytheseashore e) DES (Data Encryption Standard) Lược đồ mã hoá sử dụng phổ biến dựa sở DES phát triển vào năm 1977 cục tiêu chuẩn quốc gia Mỹ, học viện tiêu chuẩn công nghệ quốc gia (NIST), chuẩn xử lý thông tin liên bang Đối với DES, liệu mã hoá khối 64 bit sử dụng khoá 56 bit Thuật toán chuyển 64 bit đầu vào, biến đổi đưa 64 bit đầu DES sử dụng phổ biến Nó chủ đề nhiều tranh luận mức độ an toàn Để hiểu rõ giá trị tranh luận DES xem qua lại lịch sử DES Cuối năm 1960, IBM đưa dự án nghiên cứu bảo mật máy tính Dự án kết thúc vào năm 1971 với việc cho đời thuật toán gọi LUCIFER, hệ mật LUCIFER sử dụng hệ thống phân phát tiền, phát triển IBM LUCIFER khối mã hoá Feistel thực khối 64 bit, sử dụng khoá có độ dài 128 bit Những kết đầy hứa hẹn đưa dự án LUCIFER, IBM bắt tay vào công việc đầy nỗ lực để phát triển thành sản phẩm mã hoá thương mại bán được, sản phẩm lý tưởng thực chíp đơn Công đầu phải kể đến Walter Tuchman Carl Meyer, không làm rắc rối cho nhà thiết kế mà cần phải có lời khuyên nhà kỹ thuật tư vấn bên NSA Kết nỗ lực phiên LUCIFER có chọn lọc kỹ lưỡng, phiên chống lại phương pháp giải dịch, làm giảm độ dài khoá xuống 56 bit, để phù hợp chip đơn Năm 1973 cục tiêu chuẩn quốc gia Mỹ (NBS) đưa yêu cầu đề nghị cho chuẩn mã hoá quốc tế IBM đưa xem xét kết dự án Tuchman-Meyer Kết đề nghị thuật toán tốt công nhận vào năm 1977 chuẩn mã hoá liệu Trước công nhận chuẩn mã hoá liệu, DES trở thành chủ đề nhiều phê bình mạnh mẽ, phê bình chưa lắng xuống ngày hôm Có hai mặt đưa làm giận nhà phê bình Đầu tiên, chiều dài khoá thuật toán LUCIFER nguyên thuỷ IBM 128 bit hệ thống đề nghị dùng 56 bit, giảm lớn độ dài khoá 72 bit Những nhà phê bình lo sợ (và sợ) chiều dài khoá nhỏ để chống lại công quy mô lớn Mặt thứ cần quan tâm tiêu chuẩn thiết kế cho cấu trúc bên DES, hộp S phải coi mật Như vậy, người sử dụng chắn cấu trúc bên DES tự cho điểm yếu che dấu, điều cho phép NSA hướng tới thông báo giải mã lợi cho khoá Những kiện xảy sau, đặc biệt gần làm việc giải dịch khác nhau, dường rõ DES có cấu trúc bên mạnh 5.2 Thuật toán mã hóa công khai a) Hệ mật RSA Ý tưởng hệ mật khoá công khai Diffie Hellman đưa vào 1976 Còn việc thực hóa hệ mật khoá công khai Rivest, Shamir Adleman đưa vào 1977, họ tạo nên hệ mật RSA tiếng Hệ mật sử dụng tính toán Z n , n tích số nguyên tố phân biệt p q Ta mô tả hệ mật RSA sau: Cho n=p.q p q số nguyên tố Đặt P=C=Zn định nghĩa: K={(n,p,q,a,b):n=pq, p,q số nguyên tố, ab≡1(mod φ(n))} Với K =(n,p,q,a,b) ta xác định ek(x)=xb mod n dk(y)=ya mod n (x,y ∈ Zn) giá trị n b công khai giá trị p, q,a giữ kín, φ(n)=(p-1)(q-1) Quá trình thực hệ mật RSA: (người gửi:Alice; người nhận:Bob) + Bob tạo hai số nguyên tố lớn p q + Bob tính n=pq φ(n)=(p-1)(q-1) + Bob chọn số ngẫu nhiên b (0