BTL ATBM : Hệ mã hóa Vigenere

26 14 1
BTL ATBM : Hệ mã hóa Vigenere

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỌC PHẦN AN TOÀN BẢO MẬT ĐỀ TÀI 6 NGHIÊN CỨU THÔNG TIN MÃ HÓA VÀ GIẢI MÃ VĂN BẢN BẰNG HỆ MÃ HÓA VIGENERE Sin.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỌC PHẦN: AN TOÀN BẢO MẬT ĐỀ TÀI : NGHIÊN CỨU THƠNG TIN MÃ HĨA VÀ GIẢI MÃ VĂN BẢN BẰNG HỆ MÃ HÓA VIGENERE Sinh viên thực Lê Mạnh Thương Nguyễn Đình Tú Anh Lớp DCCNTT11.10.2 DCCNTT11.10.2 Bắc Ninh, năm 2023 Khóa K11 K11 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỌC PHẦN: AN TỒN BẢO MẬT Nhóm: 01 ĐỀ TÀI : NGHIÊN CỨU THƠNG TIN MÃ HĨA VÀ GIẢI MÃ VĂN BẢN BẰNG HỆ MÃ HÓA VIGENERE STT Sinh viên thực Lê Mạnh Thương Nguyễn Đình Tú Anh CÁN BỘ CHẤM (Ký ghi rõ họ tên) Mã sinh viên Điểm chữ Điềm số CÁN BỘ CHẤM (Ký ghi rõ họ tên) LỜI NÓI ĐẦU Chúng ta biết rằng, việc bảo mật thơng tin hình thành từ xa xưa chúng phát triển theo phát triển xã hội loài người Từ trước đến việc bảomật thông tin “nhạy cảm” chủ yếu hệ mật mã thủ cơng Với phát triểnnhanh chóng Internet việc lưu trữ dự liệu nhạy cảm mạng máy tính,mật mã trở thành cơng cụ quan trọng bảo mật thông tin truyền vàlưu máy tính Nhiều thuật tốn mã hóa sử dụng phổ biến giới để đảm bảo an tồn thơng tin MỤC LỤC I Tìm hiểu Hệ Mã hố giải mã Vigenere Giới thiệu .5 Khái niệm Mức độ bảo mật Mã hóa giải mã .8 Các thiết bị mật mã Vigenre 11 Bản chất đại số mật mã Vigenere .12 Uớc tính độ dài khóa 13 7.1 Phương pháp Kasiski .13 7.2 Phương pháp Friedman 13 7.3 Phương pháp ước tính số trùng hợp (IC) .14 Phân tích độ phức tạp thuật tốn mã hóa .14 Phân tích thời gian phá mã mà khơng có key 15 10 Trình bày cách phá mã 17 II Xây dựng ứng dụng minh họa .20 Giao diện ứng dụng 20 Giao diện mã hóa 20 Giao diện giải mã 21 CODE 22 TÀI LIỆU THAM KHẢO 27 I Tìm hiểu Hệ Mã hoá giải mã Vigenere Giới thiệu Hệ mã hóa Vigenere phương pháp mã hóa phát minh vào kỷ 16 nhà mật mã học người Pháp Blaise de Vigenere Phương pháp xem phương pháp mã hóa cổ điển có tính bảo mật cao thời đại Hệ mã hóa Vigenere dựa việc sử dụng bảng Vigenere, gọi bảng Vigenere Square, để thực q trình mã hóa Bảng ma trận vuông ký tự xếp theo thứ tự bảng chữ Các hàng cột bảng đánh số ký tự khác nhau, thường từ khóa sử dụng để mã hóa Q trình mã hóa hệ mã hóa Vigenere thực cách sử dụng từ khóa để lặp lặp lại ký tự thơng điệp cần mã hóa sử dụng bảng Vigenere để chuyển đổi ký tự sang ký tự khác Việc chuyển đổi thực cách tìm ký tự tương ứng hàng cột bảng Vigenere theo ký tự từ khóa ký tự thơng điệp cần mã hóa Kết chuỗi ký tự mã hóa Tuy nhiên, sau thời gian, hệ mã hóa Vigenere trở nên dễ bị xâm phạm bởicác kỹ thuật công mật mã Ngày nay, hệ mã hóa Vigenere khơng cịn sử dụng ứng dụng mã hóa đại, phương pháp mã hóa quan trọng lịch sử mật mã học Khái niệm Hệ mã hóa Vigenere hệ mật mã mà tập rõ P,tập mã C tập khóa K thuộc vào vành z m26 với khóa m k=(k1, k2,….,km) ∊ K , m độ dài khóa, với x,y thuộc z 26,ta có định nghĩa: ek(x1,x2,…,xm) = (x1 + k1 , x2 + k2 ,…, xm + km ) dk(y1,y2, …,ym) = (y1 - k1 , y2 - k2 ,…, ym - km ) Các phép cộng trừ lấy theo Modulo 26 Ý tưởng: chia chuỗi cần mã hóa thành đoạn có độ dài m mã hóa theo đoạn Ví dụ :Mã hóa rõ dùng Vigenere với khóa K Bản rõ (P) : XINCHAO Khóa (K) : RPI A B C D E F G H I J K 10 L 11 M 12 N 13 W 22 X 23 Y 24 Z 25 O 14 P 15 K 16 R 17 S 18 T 19 U 20 V 21 Xét khóa k = RPI = (17,15,8), độ dài khóa m = Bản rõ “XINCHAO” với x i tương ứng: Xi X I N C H 23 13 A O 14 Sau chia chuỗi thành đoạn có độ dài cộng đoạn với dãy (17,15,8) ta có kết sau: xi X I N C H A O 23 13 14 ki 17 15 17 15 17 x i + k i  mod 26 14 23 21 19 22 yi O X V T W I F Vậy mã thu : “OXVTWIF” VÍ dụ giải mã : Bản mã thu : “OXVTWIF” với y i tương ứng: yi O X V T W 14 23 21 19 22 I F Công thức giải mã: dk(y1,y2, …,ym) = (y1 - k1 , y2 - k2 ,…, ym - km ) Sau chia chuỗi thành đoạn có độ dài m = trừ đoạn với dãy (17,15,8) ta có kết sau: yi ki y i - k i  mod 26 xi O 14 17 23 X X 23 15 I V 21 13 N T 19 17 C W 22 15 H I 8 A F 17 14 O Vậy mã thu : “XINCHAO” Mức độ bảo mật Mức độ bảo mật Hệ mã hóa Vigenere khơng đánh giá cao so với phương pháp mã hóa đại Điều Vigenere có số điểm yếu bảo mật dễ bị công Một điểm yếu Vigenere dễ bị cơng cách sử dụng phương pháp phân tích tần suất Đây phương pháp cơng cổ điển kẻ cơng sử dụng phổ biến ký tự văn mã hóa để giải mã thơng điệp Điều có nghĩa kích thước khóa nhỏ từ khóa lặp lại q nhiều lần, kẻ cơng dễ dàng tìm khóa giải mã thông điệp Một cách khác để công Vigenere sử dụng kỹ thuật đốn từ, kẻ cơng dự đốn từ thơng điệp sử dụng bảng Vigenere để xác định cácký tự tương ứng Kỹ thuật địi hỏi kẻ cơng phải có thơng tin ngơn ngữ sử dụng thơng điệp có khả đốn từ văn Tóm lại, Vigenere phương pháp mã hóa cổ điển có tính bảo mật tương đối cao thời đại nó, khơng cịn sử dụng ứng dụng mã hóa đại mức độ bảo mật khơng cịn đáp ứng u cầu thời đại Mã hóa giải mã Mật mã Vigenère sử dụng bảng 26 × 26 với A đến Z làm tiêu đề hàng tiêu đề cột Bảng thường gọi Vigenère Tableau , Vigenère Table Vigenère Square Chúng ta sử dụng Vigenère Table Hàng bảng có 26 chữ tiếng Anh Bắt đầu với hàng thứ hai, hàng có chữ dịch chuyển sang trái vị trí theo cách tuần hồn Ví dụ, chữ B chuyển đến vị trí hàng thứ hai, chữ A di chuyển cuối Ngoài rõ, mật mã Vigenère yêu cầu từ khóa, lặp lại cho tổng độ dài với độ dài rõ Ví dụ: giả sử rõ MICHIGAN TECHNOLOGICAL UNIVERSITY từ khóa HOUGHTON Sau đó, từ khóa phải lặp lại sau: MICHIGAN TECHNOLOGICAL UNIVERSITY HOUGHTON HOUGHTONHOUGH TONHOUGNTO Chúng làm theo truyền thống cách loại bỏ tất khoảng trắng dấu câu, chuyển đổi tất chữ thành chữ hoa chia kết thành khối chữ Kết rõ từ khóa trở thành sau: MICHI GANTE CHNOL OGICA LUNIV ERSIT Y HOUGH TONHO UGHTO NHOUG HTONH OUGHT O Để mã hóa, chọn chữ rõ chữ tương ứng từ khóa, sử dụng chữ từ khóa chữ rõ ràng làm số hàng mục cột, mục nhập giao điểm hàng-cột chữ mã Ví dụ, chữ đầutiên plaintext M thư từ khóa tương ứng H Điều có nghĩa hàng H cột M sử dụng, mục nhập T giao điểm kết mã hóa Tương tự, chữ N MICHIGAN tương ứng với chữ N từ khóa, mục nhập giao điểm hàng N cột N A chữ mã hóa mã Lặp lại trình tất chữ rõ ràng xử lý, mã TWWNPZOA ASWNUHZBNWWGS NBVCSLYPMM Phần sau có rõ, từ khóa lặp lại mã chỉnh với MICHI GANTE CHNOL OGICA LUNIV ERSIT Y HOUGH TONHO UGHTO NHOUG HTONH OUGHT O TWWNP ZOAAS WNUHZ BNWWG SNBVC SLYPM M Để giải mã, chọn ký tự mã ký tự tương ứng từ khóa, sử dụng ký tự từ khóa để tìm hàng tương ứng tiêu đề chữ cột chứa ký tự mã ký tự rõ cần thiết Ví dụ, để giải mã chữ T bảnmã, tìm chữ H tương ứng từ khóa Sau đó, hàng H sử dụng để tìm ký tự T tương ứng cột chứa T cung cấp ký tự rõ ràng M (xem hình trên) Hãy xem xét chữ P thứ năm mã Chữ tương ứng với chữ từ khóa H hàngH sử dụng để tìm P Kể từ P cột I , chữ rõ tương ứng I 10 Bản chất đại số mật mã Vigenere Như phần trước, Bảng chữ chuyển sang trái vị trí lặp lặp lại để xây dựng bảng Vigenère 26 × 26 Điều tương đương với việc dịch chuyển bảng chữ ( tức tiêu đề hàng bảng Vigenère) sang bên phải vị trí thời điểm Ví dụ, hàng B có cách dịch chuyển hàng A sang trái vị trí Điều tương đương với việc chuyển bảng chữ sang vị trí Đối với dãy B , A chuyển sang B B chuyển sang C đó, A mã hóa để B B mã hóa để C Tương tự, hàng D cách A ba vị trí , A dịch chuyển ba vị trí thành D , Bđược chuyển ba vị trí để E , C chuyển ba vị trí để F Do đó, A , B C mã hóa thành D , E F cách dịch chuyển sang ba vị trí Nói chung, thư rõ P mã hóa thư từ khóa K d vị trí từ A , P mã hóa K để thư C d vị trí bên phải P Chúng ta phải xem xét chuyển dịch theo chu kỳ Nếu chữ A , B , C , , Z gán giá trị 0, 1, 2, , 25 tuổi, chữ từ khóa đơn giản khoảng cách từ thư gửi Một Kết là, ký tự mật mã C thu sau, "mod" số học mơ đun: C = ( P + d ) mod 26 12 Tóm lại, từ khóa lặp lại đủ số lần để tổng độ dài độ dài rõ, rõ p p p n , từ khóa k k k n mã c c c n , có c i = ( p i + k i ) mod 26 Giải mã quy trình đảo ngược cách dịch chuyển mã sang trái Vì dịch chuyển sang trái phép trừ, quy trình giải mã đơn giản là: p i = ( c i - k i ) mod 26 Với ý nghĩ này, dễ dàng lập trình mật mã Vigenère sau: Lưu ý Quan trọng: Trong mã ASCII, chữ A đến Z liên tiếp K - ' Một ' khoảng cách từ A đến thư K Tuy nhiên, 26 chữ mã EBCDIC khơng liên tiếp Do đó, tốt lưu ký tự mảng 26 phần tử thay đổi số mảng sử dụng K - ' A ' Uớc tính độ dài khóa 7.1 Phương pháp Kasiski Phương pháp Kasiski dựa việc tìm chuỗi trùng lặp mã, từ ước tính khoảng cách vị trí tương ứng ký tự khóa Sau đó, độ dài khóa ước tính cách tìm ước chung lớn khoảng cách Tuy nhiên, phương pháp hoạt động tốt khóa có độ dài ngắn 7.2 Phương pháp Friedman Phương pháp Friedman dựa việc tính tốn số khả tương thích (IC) mã IC số thống kê đo độ đồng ký tự mã, tính tốn cách đếm số lần xuất ký tự tính tổng bình phương tần suất xuất ký tự Nếu độ dài khóa n, IC mã xấp xỉ với 1/n lần IC 13 rõ Từ đó, độ dài khóa ước tính cách tìm giá trị n mà làm cho khác biệt IC mã 1/n lần IC rõ nhỏ 7.3 Phương pháp ước tính số trùng hợp (IC) Phương pháp ước tính độ dài khóa mật mã Vigenère cịn dựa số trùng hợp (IC - Index of Coincidence) Chỉ số trùng hợp số thống kê để đo tương đồng hai chuỗi ký tự Trong trường hợp mật mã Vigenère, số trùng hợp mã giảm dần độ dài khóa tăng lên Cụ thể, với mật mã Vigenère, số trùng hợp mã tính cơng thức sau: IC = (Σf(i)(f(i)-1)) / (n(n-1))f(i)(f(i)-1)) / (n(n-1)) Trong đó, f(i) tần số xuất ký tự i mã, n tổng số ký tự mã Chỉ số trùng hợp IC tiến dần độ dài khóa mật mã Vigenère tăng lên Từ đó, ta ước tính độ dài khóa cách tìm giá trị n mà làm cho số trùng hợp mã xấp xỉ với 1/n lần số trùng hợp rõ Tuy nhiên, phương pháp phương pháp ước tính khơng đảm bảo xác độ dài khóa Phân tích độ phức tạp thuật tốn mã hóa Đoạn mã hóa Vigenere bao gồm số vịng lặp điều kiện để mã hóa đoạn văn nhập vào thành mã Vigenere Độ phức tạp đoạn mã 14 hóa Vigenere phụ thuộc vào độ dài đoạn văn đầu vào độ dài khóa Dưới phân tích chi tiết: Tạo bảng Vigenere: đoạn mã tạo bảng Vigenere với kích thước 26x26 lưu giá trị mod 26 tổng giá trị ký tự tương ứng bảng chữ Nhập văn khóa: đoạn mã yêu cầu người dùng nhập vào chuỗi văn khóa, hai chuyển đổi thành chữ in hoa Mã hóa văn bản: đoạn mã mã hóa văn cách lặp qua ký tự văn sử dụng khóa để tạo mã Vigenere tương ứng Các ký tự chữ bỏ qua giữ nguyên ban đầu Độ phức tạp: Vịng lặp đoạn mã có độ phức tạp O(n) n độ dài đoạn văn cần mã hóa Do đó, độ phức tạp đoạn mã hóa Vigenere O(n), cộng với số phép tính tốn đơn giản, khơng gây ảnh hưởng đáng kể đến hiệu suất chương trình Phân tích thời gian phá mã mà khơng có key Nếu khơng biết khóa keychar, việc giải mã Vigenere trở nên khó khăn nhiều Tuy nhiên, với hiểu biết cách hoạt động thuật tốn Vigenere, người phá mã thực công theo từ điển phân tích tần số Theo đó, đoạn văn mã hóa có độ dài nhỏ khơng mã hóa nhiều lần khóa khác nhau, sử dụng cơng theo từ điển Tấn công theo từ điển so sánh đoạn văn mã hóa với số 15 lượng lớn từ từ điển Khi tìm thấy từ từ điển khớp với đoạn văn mã hóa, ta suy phần khóa tiếp tục tìm kiếm phần khóa cịn lại Nếu đoạn văn mã hóa có độ dài lớn mã hóa nhiều lần khóa khác nhau, sử dụng phân tích tần số Phân tích tần số xác định tần suất xuất ký tự đoạn văn mã hóa sử dụng thơng tin để suy phần khóa Thời gian để phá mã Vigenere phụ thuộc vào độ dài đoạn văn bản, độ phức tạp khóa, số lượng khóa có, phương pháp cơng sử dụng Nếu khóa có độ dài ngắn đoạn văn khơng mã hóa nhiều lần nhiều khóa khác nhau, cơng theo từ điển thực thời gian ngắn Nếu khóa có độ dài dài đoạn văn mã hóa nhiều lần, việc phá mã nhiều thời gian Nói chung thời gian phá mã cịn phụ thuộc vào nhiều lớp khóa key với độ dài rõ 10 Trình bày cách phá mã - Nếu khơng có khóa, việc giải mã văn mã hóa phương pháp Vigenere trở nên khó khăn Tuy nhiên, sử dụng số kỹ thuật phân tích ngơn ngữ để phá mã - Một phương pháp phổ biến để phá mã Vigenere mà khơng có khóa phương pháp phân tích tần suất Phương pháp dựa ý tưởng chữ văn mã hóa có xu hướng xuất với tần suất khác tùy thuộc vào vị trí chúng chu kỳ khóa Nếu bạn xác định độ dài khóa, bạn dùng phương pháp thử sai để tìm chữ khóa - Chúng em sử dụng phương thức frequencyAnalysis để phá mã : 16 - Phương thức frequencyAnalysis nhận vào chuỗi văn mã hóa tính tốn số tương đồng cho độ dài khóa từ đến 20 Để tính tốn số tương đồng, ta tính tốn tần suất xuất chữ chu kỳ khóa sử dụng cơng thức tính số tương đồng - Sau tính tốn số tương đồng cho độ dài khác khóa, ta dựa kết để xác định độ dài khóa văn mã hóa Sau đó, ta sử dụng phương pháp thử sai để tìm chữ khóa giải mã văn - Dưới đoạn mã Java để thực phương pháp phân tích tần suất để phá mã Vigenere: public static void frequencyAnalysis(String ciphertext) { // Remove all non-alphabetic characters from the ciphertext ciphertext = ciphertext.replaceAll("[^a-zA-Z]+", ""); // Calculate the index of coincidence for key lengths from to 20 for (int length = 1; length

Ngày đăng: 20/05/2023, 00:28

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

Tài liệu liên quan