1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa DiffieHellman. Lập trình Hệ mật Vigenere.

33 69 2

Đ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

Trao đổi thông tin luôn là nhu cầu cần thiết của con người, đặc biệt là trong cuộc sống hiện đại ngày nay khi mà mạng máy tính và Internet phát triển một cách mạnh mẽ và giữ vai trò quan trọng trong mọi lĩnh vực của đời sống xã hội như: chính trị, quân sự, học tập, mua sắm, kinh doanh, … Tất cả những thông tin liên quan đến những công việc này đều được máy vi tính quản lý và truyền đi trên hệ thống mạng. Đối với những thông tin bình thường thì không ai chú đến, nhưng đối với những thông tin mang tính chất sống còn đối với một cá nhân hay một tổ chức thì vấn đề bảo mật thông tin là rất quan trọng và được đặt lên hàng đầu. Chính vì vậy nên rất nhiều tổ chức, cá nhân đã nghiên cứu, tìm kiếm và đưa ra rất nhiều giải pháp bảo mật thông tin. Trong đó giao thức Diffie Hellman rất thích hợp trong truyền thông tin giữ liệu và có tính bảo mật khá cao.

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN -*** - LÝ THUYẾT MẬT MÃ + BTL ĐỀ TÀI Tìm hiểu trao đổi thoả thuận khố, phân phối khóa DiffieHellman Lập trình Hệ mật Vigenere Giảng viên hướng dẫn: ThS Đỗ Như Hải Sinh viên thực hiện: Trần Thị Khánh (1721050490) Lớp: MMT K62B Hà Nội – 2021 LỜI MỞ ĐẦU Trần Thị Khánh Lớp Mạng máy tính K62B Trao đổi thơng tin nhu cầu cần thiết người, đặc biệt sống đại ngày mà mạng máy tính Internet phát triển cách mạnh mẽ giữ vai trò quan trọng lĩnh vực đời sống xã hội như: trị, quân sự, học tập, mua sắm, kinh doanh, … Tất thông tin liên quan đến công việc máy vi tính quản lý truyền hệ thống mạng Đối với thông tin bình thường khơng đến, thơng tin mang tính chất sống cịn cá nhân hay tổ chức vấn đề bảo mật thông tin rất quan trọng đặt lên hàng đầu Chính nên rất nhiều tổ chức, cá nhân nghiên cứu, tìm kiếm đưa rất nhiều giải pháp bảo mật thông tin Trong giao thức Diffie - Hellman rất thích hợp truyền thơng tin giữ liệu có tính bảo mật cao Bài Tiểu luận sinh viên Trần Thị Khánh biên soạn dựa kiến thức mà thầy ThS Đỗ Như Hải dạy thơng qua tìm hiểu, nghiên cứu tích cực em Tiểu luận em sâu vào trình bày giao thức thỏa thuận khóa Diffie Hellman Lập trình Hệ mật Vigenere Mặc dù em rất cố gắng song khơng tránh khỏi số thiếu sót mong thầy đóng góp ý kiến để em hồn thiện tiểu luận 2 Trần Thị Khánh Lớp Mạng máy tính K62B MỤC LỤC DANH MỤC HÌNH VẼ HÌNH 1.2.3.1: GIAO THỨC THOẢ THUẬN KHỐ HÌNH 1.2.4.1: TRƯỚC KHI PHA MÀU HÌNH 1.2.4.2: BẮT ĐẦU TRỘN MÀU BÍ MẬT VỚI KHƠNG KHAI HÌNH 1.2.4.3: ALICE VÀ BOB GỬI MÀU VỪA TRỘN CHO NHAU HÌNH 1.2.4.4: KẾT QUẢ HÌNH 1.3.1: GIAO THỨC TRAO ĐỔI KHỐ HÌNH 1.4.1: KHỐ BẤT ĐỐI XỨNG HÌNH 2.2.1: GIOVAN BATTISTA BELLASO HÌNH 2.2.1: BẢNG CHỮ CÁI HÌNH 2.2.2: BẢNG MÃ HỐ HÌNH 2.2.3: BẢNG SAINT CYR HÌNH 2.3.1: BẢN MÃ HĨA SỬ DỤNG MẬT MÃ VIGENERE HÌNH 2.5.2.1 KẾT QUẢ BÀI TỐN 3 Trần Thị Khánh Lớp Mạng máy tính K62B ĐỀ TÀI: Tìm hiểu trao đổi thoả thuận khoá, phân phối khóa Diffie-Hellman Lập Trình Hệ Mật Vigenere TRAO ĐỔI VÀ THOẢ THUẬN KHỐ, PHÂN PHỐI KHĨA DIFFIE-HELLMAN 1.1 Giới thiệu giao thức Diffie-Hellman Thuật toán Diffie-Hellman phát triển vào năm 1976 Whitfield Diffie Martin Hellman Vì vậy, tên Diffie Hellman Ngồi ra, theo tên thuật tốn khơng sử dụng để mã hóa liệu, thay vào sử dụng để tạo khóa bí mật người gửi người nhận Trước thời kì này, hầu hết thuật tốn mã hoá đại thuật toán khoá đối xứng, người gửi người nhận phải dùng chung khoá, tức khoá dùng thuật toán mật mã hai người phải giữ bí mật khố Tất máy điện dùng chiến II, kể mã Caesar mã Atbash, chất mà nói hầu hết hệ thống mã dùng suốt trình lịch sử thuộc loại Do nhu cầu an ninh, khoá cho hệ thống nhất thiết phải trao đổi bên liên lạc cách thức an toàn đấy, trước họ sử dụng hệ thống (thường gọi “thơng qua kênh an tồn”), ví dụ việc sử dụng người đưa thưa đáng tin cậy với cặp tài liệu khoá vào cổ tay cắp khoá tay, hay giao lưu mặt đối mặt,… Vấn đề chưa xem dễ dàng, trở thành việc gần khơng thể kiểm sốt số lượng người tham gia tăng lên, hay người dùng khơng cịn kênh an tồn để trao đổi kháo Cụ thể cặp mạng lưới truyền thơng cần phải có khố riêng nếu, theo thiết kế hệ thống mật mã không người thứ ba nào, kể người dùng phép giải mã thông điệp Hệ thống thuộc loại gọi hệ thống dùng chìa khố mật, hệ thống mật mã hoá dùng khoá đối xứng Hệ thống trao đổi khoá Diffie-Hellman tạo điều kiện cho hoạt động hệ thống trở nên dễ dàng rất nhiều, đồng thời an toàn Mặc dù, thân thuật toán giao thức chọn khoá nặc danh tạo sở cho giao thức xác thực khác hoàn hảo 4 Trần Thị Khánh Lớp Mạng máy tính K62B Mã hóa bất đối xứng yêu cầu truyền khóa riêng người gửi người nhận liệu Một phần đầy thách thức với Mã hóa bất đối xứng việc chuyển khóa bí mật an tồn an tồn người gửi người nhận Khơng nên có quyền truy cập chặn khóa bí mật trình chuyển Việc chuyển giao hay tạo khóa bí mật hai bên tạo điều kiện thuật toán Diffie-Hellman 1.2 Giao thức thoả thuận khoá Diffie-Hellman 1.2.1 Khái niệm thoả thuận khố Trong mật mã học, giao thức thỏa thuận khóa giao thức theo hai nhiều bên trao đổi khố với thiết lập cách tự bất hai người có nhu cầu trao đổi thơng tin 1.2.2 Giao thức thoả thuận khố Diffie-Hellman Trao đổi khóa Diffie-Hellman phương pháp sử dụng rộng rãi để phát triển trao đổi khóa cách an tồn qua kênh khơng an tồn Làm bạn trao đổi thơng tin cách an tồn với bạn chưa có hội chia sẻ khóa trước thời hạn? Trao đổi khóa Diffie-Hellman chế sử dụng công khai để giải vấn đề Thuật toán cho phép người chưa gặp trước tạo khóa chia sẻ cách an toàn, kênh khơng an tồn mà đối thủ theo dõi Phương pháp khơng cần có can thiệp TA (cơ quan uỷ thác) làm nhiệm vụ điều hành phân phối khoá 1.2.3 Cách thiết lập giao thức thoả thuận khoá Diffie-Hellman Cơ bản, giao thức thỏa thuận khóa Diffie hellman thực sau: Giả sử hai bên liên lạc A B muốn thực trao đổi khóa để mã hóa thơng tin truyền kênh công cộng, trước tiên A B thống nhất sử dụng chung nhóm cyclic hữu hạn G yếu tố tạo g G Sau A chọn số a giữ bí mật số a B chọn số b giữ bí mật số b 5 Trần Thị Khánh Lớp Mạng máy tính K62B Tiếp theo A tính gửi cho B, B tính gửi cho A Trên sở A tính khố: B tính khố: Do A B có chung giá trị Giá trị dùng để dẫn x́t khóa phiên bí mật sử dụng cho thuật tốn mã hóa khóa đối xứng Giao thức thỏa thuận khóa Diffie Hellman nguyên thủy thể sau: Hình 1.2.3.1: Giao thức thoả thuận khố  Ví dụ minh họa: A B thống nhất với chọn số nguyên tố p = 17 g=4 Sau A chọn số a = giữ bí mật số a + A tính + A gửi XA = 13 cho B B chọn số b = giữ bí mật số b + B tính + B gửi XB = 16 cho A A nhận XB = 16 sau tính tốn khố, sử dụng cơng thức sau: 6 Trần Thị Khánh Lớp Mạng máy tính K62B + B nhận XA = 13 sau tính tốn khố, sử dụng cơng thức sau: + Như ta thấy, hai bên kết thúc với kết Đây bí mật chung, mà A B biết Sau hai người sử dụng điều để thiết lập khoá mã hoá đối xứng, cho phép họ gửi thơng tin hai người cách ann tồn theo cách mà hai người họ truy cập 1.2.4 Sơ đồ thoả thuận khố Diffie-Hellman Giao thức trao đổi khóa Diffie-Hellman sử dụng để khắc phục nhược điểm hệ mật khóa đối xứng Bằng cách cung cấp quy trình kết hợp với việc sử dụng tốn khó, giao thức cho phép bên thỏa thuận xác định khóa chung mà khơng cần truyền khóa qua mơi trường mạng Internet Cụ thể giao thức Diffie-Hellman hoạt động xem ví dụ sau, câu chuyện Bob Alice (Tương ứng với A B) họ chơi trò "pha màu" Đầu tiên, thân Bob Alice tự chọn cho màu bí mật, khơng ngồi thân họ biết màu Ngồi mơi trường mạng Internet cơng khai có sẵn màu, cơng khai, biết màu Ở đây, Alice chọn cho màu đỏ, Bob chọn màu xanh lá, cịn màu cơng khai ngồi Internet màu vàng 7 Trần Thị Khánh Lớp Mạng máy tính K62B Hình 1.2.4.1: Trước pha màu Alice Bob trộn màu bí mật họ với màu công khai: 8 Trần Thị Khánh Lớp Mạng máy tính K62B Hình 1.2.4.2: Bắt đầu trộn màu bí mật với khơng khai 9 Trần Thị Khánh Lớp Mạng máy tính K62B Giờ Bob Alice sẵn sàng cho việc thỏa thuận khóa Họ gửi màu vừa trộn cho qua môi trường Internet Tất nhiên kẻ xấu nhận màu này, chẳng Hình 1.2.4.3: Alice Bob gửi màu vừa trộn cho 10 10 Trần Thị Khánh Lớp Mạng máy tính K62B Các bên A, B, C D bên thực tính tốn , giá trị gửi cho E, F, G, H Ngược lại họ nhận Các bên A B bên tính , gửi cho C D, C D làm việc tương tự gửi cho A B Bên A tính tốn gửi cho B, tương tự, B gửi lại cho A C D làm việc tương tự Bên A tính số mũ cuối thu B làm điều tương tự để nhận C D làm điều tương tự Các bên từ E qua H đồng thời thực tính tốn sử dụng làm điểm khởi đầu Sau hồn thành thuật tốn, tất bên tham gia sở hữu khoá mật , bên phải tính tốn lần số mũ thành phần, thay phải tính tốn lần xếp vịng trịn đơn giản 1.8 Giao thức trao đổi khố D-H có chứng xác thực Mỗi người dùng A có danh tính ID(A) sơ đồ chữ ký với thuật toán ký thuật toán kiểm chứng TA có vai trị xác thực, xácthực bất kỳ thông tin liên quan đến việc tạo khoá mật mã người dùng (dù làkhố bí mật khố cơng khai), mà xác thực thơng tin quan hệ khácnhư thuật tốn kiểm chứng chữ ký người dùng Cịn thân thông tin liên quan đến việc tạo khố mật mã người dùng trao đổi trực tiếp với TA có sơ đồ chữ ký mình, gồm thuật tốn ký thuật tốn kiểm chứng (cơng khai) Chứng mà TA cấp cho người dùng A là: C(A) = (ID(A), , (ID(A), )) Rõ ràng chứng TA khơng xác thực bất kỳ điều liên quan đến việc tạo khoá A Việc trao đổi khoá hai người dùng A B thực theo giao thức sau đây: A chọn ngẫu nhiên số a (0 ≤ a≤ p − 2), tính XA= gửi XA cho B B chọn ngẫu nhiên số b (0 ≤ a≤ p − 2), giữ bí mật b, tính XB= , tính tiếp K= = (XB, XA) gửi (C(B), XB, ) cho A 19 19 Trần Thị Khánh Lớp Mạng máy tính K62B A tính: K = dùng để kiểm chứng , dùng để kiểm chứng C(B), sau tính = (XA, XB), gửi (C(A), ) cho B B dùng để kiểm chứng ,và dùng để kiểm chứng C(A) Nếu tất bước thực phép kiểm chứng cho kết đúngđắn, giao thức kết thúc, A B có khoá chung K Do việc dùng thuậttoán kiểm chứng nên A biết giá trị XB B B biết giá trị XA A,loại trừ khả người C khác đánh tráo giá trị đường 1.9 Kết luận Giao thức thỏa thuận khóa Diffie – Hellman đóng vai trò quan trọng việc ứng dụng vào sản phẩm mật mã dân để đảm bảo an tồn bảo mật thơng tin Tuy nhiên, để đảm bảo an toàn cài đặt, việc lựa chọn (hoặc tạo ra) tham số dùng cho giao thức đóng vai trị cốt lõi tham số phải đáp ứng yêu cầu theo tổ chức khuyến nghị tiêu chuẩn, qui chuẩn LẬP TRÌNH HỆ MẬT VIGENERE 2.1 Giới thiệu hệ mật Vigenere Mật mã Vigenere kéo dài hàng trăm năm mà khơng thể phá vỡ với khóa đủ dài Nhưng sử dụng khóa ngắn nhà thám mã có đủ nhiều mã so với độ dài khóa mật mã Vigenere lại bị thám mã dễ dàng Bài viết giới thiệu mật mã Vigenere cách thức thám mã loại mật mã Mật mã Vigenere phương pháp mã hóa chữ văn tiếng Anh, lần mô tả Giovan Battista Bellaso vào năm 1553 Phương pháp mã hóa mật mã Vigenere dễ hiểu dễ thực hiện, đến năm 1863 với nhiều nỗ lực suốt ba kỷ, Friedrich Kasiski xuất phương pháp chung để giải mã mật mã Vigenere Nhưng mật mã Vigenere gì? Nó loại mật mã đặc biệt mật mã thay polyalphabetic sử dụng giống mật mã thay monoalphabetic ngoại trừ thay đổi Bảng chữ lấy làm mật mã thay đổi định kỳ mã hóa văn túy 20 20 Trần Thị Khánh Lớp Mạng máy tính K62B Điều làm giảm mật mã bị tấn cơng cách sử dụng phân tích mật mã tần số chữ Hình 2.2.1: Giovan Battista Bellaso Phương pháp Vigenere sử dụng từ khóa có độ dài m Khơng gian khóa K phương pháp Vigenere có số phần tử n m , lớn hẳn phương pháp số lượng phần tử khơng gian khóa K phương pháp mã hóa dịch chuyển 21 21 Trần Thị Khánh Lớp Mạng máy tính K62B Thực chất q trình mã hoá Vigenere việc tiến hành đồng thời dùng nhiều mã Ceaser lúc rõ với nhiều khoá khác Khoá cho chữ dùng để mã phụ thuộc vào vị trí chữ rõ lấy từ khoá theo thứ tự tương ứng 2.2 Giải mã mã hoá mật mã Vigenere Mã hoá Trong ngành mật mã học, mã hóa q trình dùng để biến thơng tin từ dạng sang dạng khác ngăn người không phận tiếp cận vào thơng tin Bản thân việc mã hóa khơng ngăn chặn việc thơng tin bị đánh cắp, có điều thơng tin lấy khơng xài được, khơng đọc hay hiểu làm biến dạng Mã hóa bao gồm thành phần: • • • • Thơng tin trước mã hóa (Plaintext) Sau tin sau mã hóa (Ciphertext) Chìa khóa (Key) Phương pháp giải mã (Encryption/Decryption) Q trình mã hóa tiến hành cách sử dụng hàm tốn học Encryption lên thơng tin Plaintext, vốn biểu diễn dạng số, để trở thành thơng tin mã hóa Ciphertext Mã hóa mang lại tính an tồn cao cho thơng tin, đặc biệt thời đại Internet ngày nay, mà thông tin phải qua nhiều trạm trung chuyển trước đến đích Nếu khơng có mã hóa, khả thơng tin bạn bị xem trộm trình truyền tải, lợi dụng để làm việc xấu hoàn toàn hữu Giải mã Giải mã phương pháp đưa thông tin dạng mã hóa dạng thơng tin ban đầu, quy trình ngược mã hóa Q trình giải mã tiến hành sau: Áp dụng hàm toán học Decryption lên thông tin CipherText để thông tin giải mã Plaintext  Giả sử 22 22 Trần Thị Khánh Lớp Mạng máy tính K62B -Khố chữ có độ dài d viết dạng K = …, nhận giá trị từ đến 25 -Ta chia rõ thành khối gồm d chữ Mỗi chữ thứ i khối định dùng bảng chữ lặp lại từ đầu sau d chữ rõ Vì có nhiều bảng chữ khác nhau, nên chữ vị trí khác có bước nhảy khác nhau, làm cho tần suất chữ mã dãn tương đối -Giải mã đơn giản trình làm ngược lại Nghĩa dùng mã từ khoá với bảng chữ tương ứng, với chữ sử dụng bước nhảy lui đâu  Ví dụ Ta có bảng chữ cái: Hình 2.2.1: Bảng chữ -Giả sử d = từ khoá CIPHER, từ khoá tương ứng với dãy số: k = (2, 8, 15, 7, 4, 17) -Giả sử rõ: meetmeatsunset Chuyển kí tự rõ thành mã cộng với từ khố 23 23 Trần Thị Khánh Lớp Mạng máy tính K62B -Giải mã = (Bản rõ + Key) mod 26 -Mã hố = (Giải mã – Key) mod 26 Hình 2.2.2: Bảng mã hoá Trong Vigenere Cipher, người ta dùng tất 26 bảng thu từ bảng gốc chữ tiếng Anh mà dịch từ 0-25 vị trí Sự hồ trộn có quy luật hồn tồn xác định khố Mỗi chữ khố xác định bảng dùng 24 24 Trần Thị Khánh Lớp Mạng máy tính K62B Hình 2.2.3: Bảng Saint Cyr Ví dụ ta có chuỗi cần mã hóa sau: “ATTACKATDAWN” Và key dùng để mã hóa “LEMON” Trước hết ta nhân chuỗi LEMON lên để có độ dài với chuỗi cần mã hóa: “LEMONLEMONLE” Khi ta sử dụng bảng mã hóa sau: trái qua phải, lấy ký tự key làm dòng, ký tự chuỗi cần mã hóa cột dóng vào bảng mã ta ký tự, ký tự ký tự mã hóa Áp dụng với key LEMONLEMONLE chuỗi ATTACKATDAWN bên trên: 25 25 Trần Thị Khánh Lớp Mạng máy tính K62B [L, A] -> L [E, T] -> X [M, T] -> F [O, A] -> O [N, C] -> P [L, K] -> V [E, A] -> E [M, T] -> F [O, D] -> R [N, A] -> N [L, W] -> H [E, N] -> R ta chuỗi Mã hoá: LXFOPVEFRNHR Để giải mã, ta lần ngược lại bảng mã Bắt đầu từ trái qua phải, với ký tự key làm dịng, ta tìm cột mà dóng xuống ta có gía trị ký tự chuỗi mã hóa Ký tự cột ký tự chuỗi ban đầu 2.3 Chu kỳ khóa mật mã Vigenere Đầu tiên cần lưu ý chu kỳ khóa tìm khơng với thực tế sử dụng Nếu mã đủ dài xác, phương pháp cung cấp gần Mật mã Vigenère áp dụng mật mã Caesar khác cho chữ liên tiếp Ví dụ mã Vigenère sau: 26 26 Trần Thị Khánh Lớp Mạng máy tính K62B Hình 2.3.1: Bản mã hóa sử dụng mật mã Vigenere Mật mã Caesar dạng mật mã thay thế, theo ký tự rõ thay ký tự cách đoạn bảng chữ để tạo thành mã Giả sử với khóa (dịch vị trí bảng chữ cái), chữ ‘a’ thay chữ ‘d’, chữ ‘b’ thay ‘e’ đến hết rõ Phương pháp đặt tên Caesar, vị Hoàng đế sử dụng loại mật mã thường xuyên công việc Nếu mật mã Vigenère sử dụng khóa có chu kỳ 'PUB', chữ rõ mã hóa mật mã Caesar với khóa 16 (P chữ thứ 16 bảng chữ cái), chữ thứ hai mã với khóa 21 (chữ U) chữ thứ ba mã với khóa (chữ B) Chữ rõ thứ mã hóa quay lại chữ khóa thứ nhất (khóa 16) Kết là, chữ vị trí 1, 4, 7, 10, mã hóa mật mã Caesar với chữ khóa P Các chữ vị trí 2, 5, 8, 11, 3, 6, 9, 12, mã hóa mật mã Caesar với khóa tương ứng chữ U B Như vậy, trình tự xác phụ thuộc vào chu kỳ khóa mật mã, tức độ dài khóa, với ví dụ độ dài chu kỳ khóa 2.4 An tồn mã Vigenere Như có chữ mã khác cho chữ rõ Suy tần suất chữ phẳng, nghĩa tần suất xuất chữ bị phẳng, nghĩa tần suất xuất chữ mã tương đối Tuy nhiên chưa mất an toàn, độ dài khố có hạn, nên tạo lên chu kỳ vòng lặp 27 27 Trần Thị Khánh Lớp Mạng máy tính K62B Kẻ thám mã tần suất chữ để xem có phải mã đơn bảng chữ hay không Giả sử mã đa bảng chữ, sau xác định số bẳng chữ từ khoá (dùng phương pháp Kasiski) lần tìm chữ Như cần tăng độ dài từ khoá để tăng số bảng chữ dùng mã “là” tần suất chữ Phương pháp Kasiski Phép thử Kasiski xây dựng nhận xét là: hai đoạn giống rõ mã hoá thành đoạn mã chúng xuất rõ cách x vị trí, x số nguyên lần chiều dài khóa m Ngược lại, ta thấy hai đoạn giống mã (mỗi đoạn có độ dài nhất 3) dấu hiệu tốt để nói chúng tương ứng với đoạn rõ giống Phương pháp Kasiski gồm bước sau: -Bước 1: Nhận diện mẫu bị lặp có kí tự - Bước 2: Với mẫu, ghi vị trí bắt đầu thể mẫu - Bước 3: Tính khoảng cách điểm bắt đầu thể - Bước 4: Xác định tất tham số cho khoảng cách - Bước 5: Nếu dùng phép đa biểu, độ dài khoá tham số thường xuất bước Dựa quy luật tiếng anh khơng chữ mà nhóm chữ lẫn từ đầy đủ lặp lại Ví dụ: +Các từ kết thúc bằng: s, -th, -ed, -ion, -tion, … +Bắt đầu kí tự: im-, in-, un-, … +Các từ: of, and, with, are, is, that, … xuất với tần suất cao 28 28 Trần Thị Khánh Lớp Mạng máy tính K62B Tuân theo quy tắc: thông báo mã n bảng chữ luân phiên theo chu kì, từ hay nhóm chữ cụ thể xuất k lần thơng báo rõ mã xấp xỉ k/n lần từ bảng chữ Ví dụ: +Các từ khố dài kí tự có cách khác để đặt từ khoá từ rõ +Một từ hay nhóm kí tự rõ mà x́t lần phải mã nhất lần theo vị trí từ khố lần x́t mã Biện pháp Kasiski dùng đoạn đúp mã Để cụm từ rõ mã lần theo cách, khố phải hết tồn số vịng quay trở ngược đến điểm Bởi mà khoảng cách mẫu lặp lại phải bội độ dài từ khố 2.5 Lập trình 2.5.1 Thuật tốn Mật mã Vigenere tập hợp quy tắc thay chữ đơn bảng chữ tiếng Anh qua việc sử dụng 26 mật mã Caesar với bước dịch chuyển từ đến 25 tương ứng từ chữ ‘a’ đến chữ ‘z’ Cụ thể, mã Vigenère lập theo cơng thức sau: + Mã hố = (Bản rõ + Key) mod 26 Trong JAVA phép chia lấy số dư (mod) biểu diễn % =>Mã hoá = (Bản rõ + Key) % 26 + Giải mã = (Mã hoá – Key) mod 26 =>Giải mã = (Mã hoá – Key) % 26 Mật mã Vigenere phá vỡ trường hợp sử dụng khóa đủ dài Nhưng với khóa ngắn nhà thám mã có đủ nhiều mã so với độ dài khóa dễ để phá vỡ Việc thám mật mã Vigenère thường tiến hành theo hai bước là: xác định độ dài chu kỳ khóa trước, sau tìm khóa cụ thể 29 29 Trần Thị Khánh Lớp Mạng máy tính K62B 2.5.2 CODE package hematvigenere_nhom2; /** * * @author Khaanh */ public class HematVIGENERE_Nhom2 { /** * @param args the command line arguments */ // MÃ HOÁ public static String encrypt(String text, final String key) { String res = ""; //biến trả mã hoá text = text.toUpperCase();//BẢN RÕ int j=0; for (int i = 0; i < text.length(); i++) { char c = text.charAt(i); if (c < 'A' || c > 'Z') continue; res =res+ (char) ((c + key.charAt(j) - * 'A') % 26 + 'A'); j = ++j % key.length(); } return res; } // GIẢI MÃ public static String decrypt(String text, final String key) { String res = "";//biến trả giải mã text = text.toUpperCase(); int j=0; for (int i = 0; i < text.length(); i++) { char c = text.charAt(i); if (c < 'A' || c > 'Z') continue; res =res+ (char) ((c - key.charAt(j) + 26) % 26 + 'A'); j = ++j % key.length(); } return res; } 30 30 Trần Thị Khánh Lớp Mạng máy tính K62B public static void main(String[] args) { String key = "BEAUFORT"; // KHOÁ String text = "CRYPTOGRAPHY"; // RÕ String encryptedMsg = encrypt(text, key); System.out.println("String: " + text); System.out.println("Encrypted message: " + encryptedMsg); System.out.println("Decrypted message: " + decrypt(encryptedMsg, key)); } } Kết quả: Hình 2.5.2.1 Kết tốn 31 31 Trần Thị Khánh Lớp Mạng máy tính K62B Tài liệu tham khảo (2011) Thỏa thuận DH Trong: van Tilborg H.C.A., Jajodia S (chủ đề) Bách khoa toàn thư mật mã bảo mật Springer, Boston, MA https://doi.org/10.1007/978-1-44195906-5_1292 https://123docz.net/document/3349207-phan-phoi-khoa-va-thoa-thuan-khoa.htm Đề tài Giao thức thỏa thuận khóa Diffie - Hellman - Luận văn, đồ án, đề tài tốt nghiệp (luanvan.co) What is the Diffie–Hellman key exchange and how does it work? (comparitech.com) Luận văn: Nghiên cứu sơ đồ thoả thuận khố bí mật, HAY (slideshare.net) What is a Key Agreement Protocol ? | Secret Double Octopus Introduction to Diffie-Hellman Key Exchange - Infosec Resources (infosecinstitute.com) Diffie-Hellman Key Exchange vs RSA Encryption| Venafi 32 32 Trần Thị Khánh Lớp Mạng máy tính K62B 33 33 ... Khánh Lớp Mạng máy tính K62B ĐỀ TÀI: Tìm hiểu trao đổi thoả thuận khố, phân phối khóa Diffie-Hellman Lập Trình Hệ Mật Vigenere TRAO ĐỔI VÀ THOẢ THUẬN KHỐ, PHÂN PHỐI KHĨA DIFFIE-HELLMAN 1.1 Giới... sử dụng để trao đổi khóa bí mật đó, mã hóa đối xứng sử dụng để trao đổi lượng lớn liệu 1.5 Các phương pháp phân phối khoá Diffie-Hellman Hiện có hai phương pháp để ? ?Thoả thuận khố mật? ??: - Phương... giao thức theo hai nhiều bên trao đổi khố với thiết lập cách tự bất hai người có nhu cầu trao đổi thơng tin 1.2.2 Giao thức thoả thuận khố Diffie-Hellman Trao đổi khóa Diffie-Hellman phương pháp

Ngày đăng: 17/08/2021, 10:31

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    1.2.1. Khái niệm thoả thuận khoá

    1.3. Giao thức trao đổi khoá Diffie-Hellman

    1.4. Mã hoá bất đối xứng

    1.5.1. Phương pháp thông thường

    1.5.2. Phương pháp hiệu quả

    1.7. Mở rộng bài toán cho nhiều bên

    1.8. Giao thức trao đổi khoá D-H có chứng chỉ xác thực

    2.1. Giới thiệu hệ mật Vigenere

    2.2. Giải mã và mã hoá mật mã Vigenere

    2.3. Chu kỳ khóa của mật mã Vigenere

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

TÀI LIỆU LIÊN QUAN

w