Bài tập lớn môn An toàn và bảo mật thông tin: Mô tả thuật toán mã hoá bí mật Data Encryption Standard và Nghiên cứu Lược Đồ Chia Sẻ Bí Mật vào thi tuyển sinh đại học. Ứng dụng thuật toán DES và lược đồ chia sẻ bí mật vào thi tuyển sinh. Mã hoá DES. 1. Tìm hiểu thuật toán DES 2. Nghiên cứu bài toán chia sẻ bí mật của Lagrange 3. Ứng dụng lược đồ chia sẻ bí mật để phân phối khoá
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN AN TOÀN VÀ BẢO MẬT THƠNG TIN ĐỀ TÀI Ứng dụng thật tốn DES lược đồ chia sẻ bí mật vào thi tuyển sinh - - - - - - - - - - - - - - - - - - - Giáo viên hướng dẫn : ThS Trần Phương Nhung Nhóm số : Mã lớp : 20201IT6001001 Hà Nội, 2020 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN AN TOÀN VÀ BẢO MẬT THƠNG TIN ĐỀ TÀI Ứng dụng thật tốn DES lược đồ chia sẻ bí mật vào thi tuyển sinh - - - - - - - - - - - - - - - - - - - Giáo viên hướng dẫn : ThS Trần Phương Nhung Mã lớp : 20201IT6001001 Sinh viên thực : - Phạm Thanh Nam - Nguyễn Văn Phúc - Nguyễn Thị Phương Hà Nội, 2020 MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU LỜI NÓI ĐẦU Chương 1: An tồn bảo mật thơng tin 1.1 Tổng quan an tồn bảo mật thơng tin 1.1.1 Sự cần thiết việc đảm bảo an tồn thơng tin 1.1.2 Khái niệm an tồn thơng tin 1.1.3 Các phương pháp bảo vệ thông tin 1.2 An toàn thông tin mật mã 10 1.2.1 Mật mã thông tin 10 1.2.2 Hệ mật mã 12 Chương 2: Chuẩn mã liệu DES 17 2.1 Hệ mã hóa khối DES 17 2.1.1 Lịch sử DES 17 2.1.2 Mật mã khối 18 2.2 Kỹ thuật hệ mã hóa DES 19 2.3 Ưu nhược điểm 22 2.3.1 Ưu điểm: 22 2.3.2 Các yếu điểm DES: 22 2.4 Sơ đồ khối 26 2.5 Thuật toán 28 2.5.1 Quá trình mã hóa: 30 2.5.2 Quá trình giải mã: 32 2.5.3 Hàm F 32 2.5.4 Quá trình tạo khóa 33 2.5.5 Hàm (ánh xạ) mở rộng (E) 35 2.5.6 Hộp S – Box 37 2.5.7 Hộp P-Box 38 2.6 Lập mã DES 38 2.7 Một vài kết luận DES 42 Chương 3: Bài tốn chia sẻ bí mật 44 3.1 Kỹ thuật Chia sẻ khóa bí mật (Secret Sharing) 44 3.1.1 Khái niệm chia sẻ bí mật 44 3.1.2 Các sơ đồ chia sẻ bí mật 45 3.2 Ứng dụng lược đồ chia sẻ bí mật Lagrange để phân phối khóa 50 3.3 Kết luận 51 Chương 4: Áp dụng thuật toán DES lược đồ chia sẻ bí mật vào thi tuyển sinh 53 4.1 Bài toán ứng dụng 53 4.2 Quy trình thực giải tốn 53 4.2.1 Sơ đồ 53 4.2.2 Các bước thực 54 4.3 Chương trình minh họa 57 KẾT LUẬN 60 DANH MỤC HÌNH VẼ Ảnh 1.1: Các mức độ bảo vệ thông tin 10 Ảnh 1.2: Thông tin gửi bị nghe 11 Ảnh 1.3: Bảo vệ thông tin mật mã 11 Ảnh 1.4: Quá trình mã hóa giải mã thơng tin 12 Ảnh 1.5: Sơ đồ mã hóa giải mã khóa riêng 15 Ảnh 1.6: Sơ đồ mã hóa giải mã khóa cơng khai 15 Ảnh 2.1: Sơ đồ khối chương trình DES 26 Ảnh 2.2: Sơ đồ khối trình sinh khóa 27 Ảnh 2.3: Sơ đồ mã hóa DES 29 Ảnh 2.4: Sơ đồ vòng DES 30 Ảnh 2.5: Sơ đồ hàm F 33 Ảnh 2.6: Sơ đồ tạo khóa 34 Ảnh 2.7: Sơ đồ hàm mở rộng 36 Ảnh 3.1: DES q trình phân phối khóa 51 Ảnh 4.1: Sơ đồ quy trình bảo mật đề thi gửi từ nơi đề đến nơi tổ chức thi 54 DANH MỤC BẢNG BIỂU Bảng 2.1: Các khóa yếu DES 23 Bảng 2.2: Các khóa nửa yếu DES 23 Bảng 2.3: Hoán vị IP 31 Bảng 2.4: Hoán vị IP-1 31 Bảng 2.5: Hoán vị PC-1 34 Bảng 2.6: Bảng dịch bit tại vòng lặp DES 35 Bảng 2.7: Hoán vị PC-2 35 Bảng 2.8: Hàm mở rộng E 36 Bảng 2.9: hộp S-Box 38 Bảng 2.10: Bảng hoán vị P 38 LỜI NÓI ĐẦU Với bùng nổ mạnh công nghệ thông tin phát triển mạng Internet nên việc trao đổi thông tin trở nên dễ dàng hết Tuy nhiên, phát sinh thêm vấn đề ngày trở nên cấp bách cần thiết yêu cầu an tồn mạng, an ninh liệu, bảo mật thơng tin môi trường mạng thực tiễn Trên giới có nhiều quốc gia nhà khoa học nghiên cứu đề bảo mật, đưa nhiều thuật tốn giúp thơng tin khơng bị đánh cắp hoặc bị lấy cắp không sử dụng Trong giải pháp đó là an tồn thơng tin mật mã Ở đề tài này nhóm em đề cập tới thuật tốn mã hóa DES (Data Encryption Standard) Liên bang Mỹ nhiều quốc gia giới sử dụng Tuy DES không còn đánh giá cao độ an toàn tuyệt đối, nó ứng dụng nhiều lĩnh vực thực tiễn Bên cạnh mã hóa thông tin, lược đồ chia sẻ bí mật dùng để chia nhỏ thơng tin q trình truyền để đảm bảo an tồn liệu Sơ đồ chia sẻ bí mật thường sử dụng để chia sẻ mật khẩu, khóa mã hóa đó có khóa mã hóa DES Để ứng dụng phương pháp vào thực tiễn, hướng dẫn cô Trần Phương Nhung, chúng em lựa chọn đề tài “Ứng dụng mã hóa bảo mật DES lược đồ chia sẻ bí mật vào thi tuyển sinh” với mong muốn áp dụng kiến thức đã học, giải toán bảo mật đề thi thi tuyển sinh Đề tài nhóm gồm phần: Chương 1: An toàn vào bảo mật thông tin Phần trình bày tổng quan an tồn bảo mật thông tin, phương pháp mã hóa để bảo mật liệu Chương 2: Chuẩn liệu DES Chương này nói q trình mã hóa giải mã hệ mật mã DES, vấn đề xung quanh DES Chương 3: Sơ đồ chia sẻ bí mật Trong chương này trình bày sơ đồ chia sẻ bí mật Lagrange, phương thức chia sẻ khôi phục khóa bí mật Chương 4: Áp dụng thuật tốn DES và lược đồ chia sẻ bí mật vào thi tuyển sinh Đề tài hoàn thành cộng tác thành viên nhóm hướng dẫn cô Trần Phương Nhung Nội dung đề tài hoàn thành dựa lý thuyết đã học Chuẩn liệu DES nhiều tài liệu tham khảo khác nhiên khơng tránh khỏi thiếu xót mong nhận thêm phản ánh góp ý từ phía giảng viên quý bạn đọc Chương 1: An toàn bảo mật thơng tin 1.1 Tổng quan an tồn bảo mật thông tin 1.1.1 Sự cần thiết việc đảm bảo an tồn thơng tin Ngày xuất internet toàn cầu đã giúp cho việc trao đổi thông tin trở nên nhanh gọn, dễ dàng Các phương thức chia sẻ liệu qua mạng làm cho việc trao đổi, mua bán, chuyển tiền, … diễn ngày tảng số Tuy nhiên vấn đề lại phát sinh Những thông tin nằm ở kho liệu hay truyền có thể bị trộm cắp, bị làm sai lệch, giả mạo Điều làm ảnh hưởng đến độ an toàn thông tin nhạy cảm, tin mật, … có thể tác động lớn đến nhiều cá nhân, tổ chức, hay ác động đến an ninh quốc gia 1.1.2 Khái niệm an tồn thơng tin 1.1.2.1 Khái niệm Định nghĩa an toàn thông tin nêu từ nhiều nguồn khác nhau, hiểu theo nhiều cách sau: An toàn thông tin nghĩa là thông tin bảo vệ, hệ thống dịch vụ có khả chống lại can thiệp, lỗi tai họa không mong đợi, thay đổi tác động đến đợ an tồn hệ thống nhỏ Hệ thống khơng an tồn hệ thống tồn điểm: thơng tin bị rị rỉ ngồi, thơng tin bị thay đổi, Giá trị thực thông tin đạt thông tin cung cấp xác kịp thời, hệ thống phải hoạt động chuẩn xác đưa thơng tin có giá trị cao Mục tiêu an tồn bảo mật công nghệ thông tin đưa mợt số tiêu chuẩn an tồn áp dụng tiêu chuẩn an tồn vào chỗ thích hợp để giảm bớt loại trừ nguy hiểm có thể xảy Ngày với kỹ thuật truyền nhận xử lý thông tin ngày phát triển phức tạp nên hệ thống đạt tới mức độ an toàn nào đó và khơng có hệ thống an toàn tuyệt đối 1.1.2.2 Các yêu cầu an tồn bảo mật thơng tin Ngày nay, với phát triển nhanh khoa học công nghệ, biện pháp công ngày tinh xảo hơn, độ an tồn thơng tin bị đe dọa từ nhiều nơi, theo nhiều cách khác nhau, cần phải đưa sách đề phịng thích hợp Các yêu cầu cần thiết việc bảo vệ thơng tin tài ngun: • Đảm bảo bí mật (Bảo mật): thông tin không bị lộ người khơng phép • Đảm bảo tính tin cậy (Confidentiality): Thông tin tài nguyên bị truy cập trái phép bởi người khơng có quyền hạn • Đảm bảo tính tồn vẹn (Integrity): Thơng tin tài nguyên bị sửa đổi, bị thay bởi người khơng có quyền hạn • Đảm bảo tính sẵn sàng (Availability): Thơng tin tài ngun ln sẵn sàng để đáp ứng sử dụng cho người có quyền hạn • Đảm bảo tính khơng thể chối bỏ (Non-repudiation): Thông tin tài nguyên xác nhận mặt pháp luật người cung cấp 1.1.2.3 Các nội dung an tồn thơng tin • Nợi dung chính: - An tồn máy tính: bảo vệ thơng tin cố định bên máy tính, khoa học bảo đảm an tồn thơng tin máy tính - An tồn truyền tin: bảo vệ thơng tin đường truyền tin(thông tin truyền từ hệ thống sang hệ thống khác), khoa học bảo đảm an toàn thơng tin đường truyền tin • Nợi dung chun ngành: - An tồn liệu (data security) - An toàn sở liệu (database security) - An toàn hệ điều hành (operation system security) - An tồn mạng máy tính (network security) 1.1.2.4 Các chiến lược bảo đảm an tồn thơng tin Giới hạn quyền hạn tối thiểu (Last Privilege):theo nguyên tắc đối tượng có quyền hạn định tài nguyên mạng Bảo vệ theo chiều sâu (Defence In Depth): Không nên dựa vào chế độ an toàn chúng mạnh, mà nên tạo nhiều chế an toàn để tương hỗ lẫn Nút thắt (Choke Point): Tạo “cửa khẩu” hẹp, cho phép thông tin vào hệ thống đường là “cửa khẩu” này Điểm nối yếu (Weakest Link):Chiến lược dựa nguyên tắc: “ Một dây xích tại mắt nhất, tường cứng tại điểm yếu nhất” Tính tồn cục: Các hệ thống an toàn đòi hỏi phải có tính tồn cục hệ thống cục Tính đa dạng bảo vệ: Cần phải sử dụng nhiều biện pháp bảo vệ khác cho hệ thống khác nhau, khơng có kẻ cơng vào hệ thống chúng dễ dàng cơng vào hệ thống khác 1.1.3 Các phương pháp bảo vệ thông tin Quyền truy nhập: Là lớp bảo vệ nhằm kiểm soát tài nguyên mạng quyền hạn tài nguyên đó Đăng ký tên /mật khẩu: Thực là kiểm soát quyền truy nhập, truy nhập ở mức thông tin mà ở mức hệ thống Mã hoá liệu: Dữ liệu bị biến đổi từ dạng nhận thức sang dạng không nhận thức theo thuật toán nào đó và biến đổi ngược lại ở trạm nhận (giải mã) Bảo vệ vật lý: Ngăn cản truy nhập vật lý vào hệ thống người có phần số phần mật đó phải đoán chữ tương đương với 266 = 308 tỷ khả Hệ thống sơ đồ chia sẻ bí mật an tồn bởi người tham gia có t phần liệu thu phần đáng kể thông tin bí mật Trong sơ đồ chia sẻ bí mật an toàn, mặc dù người tham gia thiếu phần liệu có thể đối mặt với 268 = 208 tỷ khả 3.1.2.2 Sơ đồ chia sẻ bí mật Shamir Ý tưởng sơ đồ ngưỡng giới hạn Shamir dựa tính chất: Hai điểm định nghĩa đường thẳng, điểm định nghĩa parabol, điểm định nghĩa hình lập phương, cách tổng quát cần n+1 điểm để định nghĩa đa thức bậc n Bài toán: Cho t, m số nguyên dương, t ≤ m Một sơ đồ ngưỡng A(t, m) phương pháp phân chia khóa K cho tập w thành viên (kí hiệu P) cho t thành viên tính K khơng nhóm (t-1) thành viên làm điều đó Ví dụ : có m = thủ quỹ giữ két bạc Hãy xây dựng hệ thống cho t = thủ quỹ nào có thể mở két bạc, người riêng rẽ khơng thể Đó là sơ đồ ngưỡng A(2,3) Giá trị K chọn bởi thành viên đặc biệt gọi là người phân phối (D), D∉P D phân chia khóa K cho thành viên P cách cho thành viên thông tin cục gọi mảnh Các mảnh phân phát cách bí mật để khơng thành viên biết mảnh trao cho thành viên khác Một tập thành viên B ⊆ P kết hợp mảnh họ để tính khóa K (cũng có thể trao mảnh cho người đáng tin cậy để tính khóa hộ) 46 Nếu |B| ≥ t họ có khả tính K Nếu |B| < t hị khơng thể tính K Gọi P tập giá trị phân phối khóa K: P = {pi : ≤ i ≤ m} K tập khóa: tất khóa K S tập mảnh: tập tất mảnh ▪ Khởi tạo: Chọn số nguyên tố p D chọn 𝑚 phần tử 𝑥𝑖 khác nhau, ≠ Zp, ≤ 𝑖 ≤ 𝑚 (yêu cầu: 𝑚 < 𝑝, Tl: 𝑥𝑖 khác nhau, ≠ Zp) D trao 𝑥𝑖 cho thành viên Pi Giá trị 𝑥𝑖 công khai ▪ Phân phối mảnh khóa D chọn bí mật (ngẫu nhiên, độc lập) (t – 1) phần tử Zp a1, …, at – Với ≤ i ≤ m, D tính: yi = P(xi), 𝑡−1 𝑃(𝑥) = 𝐾 + ∑ 𝑎𝑗 𝑥𝑗 𝑚𝑜𝑑 𝑝 𝑗=1 Với ≤ i ≤ m, D trao mảnh yi cho Pi ▪ Khơi phục khóa K từ t thành viên Giải hệ phương trình tuyến tính t ẩn, t phương trình Vì P(x) = K + a1 x1 + a2 x2 + …+ at-1 xt-1 Các hệ số K, a1, …, at-1 phần tử chưa biết Zp, a0 = K khóa Vì yi j = P(xi j), nên ta thu t phương trình tuyến tính t ẩn a0, a1, …, at-1, Nếu phương trình độc lập tuyến tính có nghiệm và ta giá trị khoá a0 = K 47 3.1.2.3 Chia sẻ bí mật dựa ý tưởng Lagrange Giả sử ta có n thực thể A1,A2,…,An và có người ủy quyền B biết tồn khóa bí mật S ∈ N Người ủy quyền B thực bước sau: (1) B chọn số nguyên tố P đủ lớn cho: 𝑛 ≤ √𝑝 với 𝑆 ∈ 𝑍𝑝 : (2) B chọn (2n – 1) số cách ngẫu nhiên: 𝑎1 , 𝑎2 , … , 𝑎𝑛−1 𝑣1 , 𝑣2 , , 𝑣𝑛 (3) B xác định đa thức với hệ số a1, …, at-1 𝑍𝑝 : 𝑓(𝑣) = 𝑎𝑛−1 𝑣 𝑛−1 + 𝑎𝑛−2 𝑣 𝑛−2 + +𝑎1 𝑣 + 𝑆 (𝑚𝑜𝑑 𝑝) 𝑣ớ𝑖 𝑣 = 𝑣1 , 𝑣2 , , 𝑣𝑛 (4) Bây B gửi Aj (một cách công khai) cặp (𝑣𝑗 , 𝑓(𝑣𝑗 )) 𝑣ớ𝑖 𝑗 = 1, 2, , 𝑛 coi mảnh riêng Aj Khôi phục bí mật S: Tất n người A1, …, An hợp tác lại để khơi phục lại bí mật S cách: 𝑆 = 𝑔(𝑥) = ∑ 𝑓(𝑣𝑗 ) 1≤𝑗≤𝑛 −1 ∏ (𝑣𝑗 − 𝑣𝑖 ) (𝑥 − 𝑣𝑖 ) 𝑚𝑜𝑑 𝑝 1≤𝑖≤𝑛,𝑖≠𝑗 Khi đó dễ dàng xác định S = g(0) (x = 0) Ta có định lý sau: Nếu n thực thể kết hợp với khơi phục bí mật S cách có hiệu đó là: S = g(0) = f(0) Chứng minh: Thật ,dễ thấy g(x) hàm nội suy Lagrange hàm f(x) đa thức có cấp bé n và g thỏa mãn điều kiện:g(vj)=f(vj) với ≤ j < n Do đó, f – g là đa thức Zp có cấp bé n, lại có n nghiệm khác nhau: số r thỏa mãn f(r) – g(r) = Chứng tỏ f(a) = g(a) với ∀𝑎 ∈ 𝑍𝑝 đặc biệt f(0) = g(0) = S (ĐPCM) Ví dụ: 48 Ví dụ 1: Có người A1, A2, A3 muốn chia sẻ bí mật 472 Cho p = 1999 công khai A chọn v1 = 626, v2 = 674, v3 = 93; a1 = 334, a2 = 223 Tính 𝑓(𝑣𝑗 ) = 𝑎2 𝑣𝑗2 + 𝑎1 𝑣𝑗 + 𝑆 𝑚𝑜𝑑 𝑝 Áp dụng cơng thức ta có: 𝑓(𝑣1 ) = 1724 ⇒ 𝐴1 𝑐ó 𝑐ặ𝑝 (𝑣1 , 𝑓(𝑣1 )) = (626, 1724) 𝑓(𝑣2 ) = 1925 ⇒ 𝐴2 𝑐ó 𝑐ặ𝑝 (𝑣2 , 𝑓(𝑣2 )) = (674, 1925) 𝑓(𝑣3 ) = 1241 ⇒ 𝐴3 𝑐ó 𝑐ặ𝑝 (𝑣3 , 𝑓(𝑣3 )) = (93, 1241) Ta lấy cặp (𝑣𝑗 , 𝑓(𝑣𝑗 )) hợp lại xác định S: −1 ∏ (𝑣𝑖 − 𝑣𝑗 ) (𝑣𝑖 ) 𝑚𝑜𝑑 𝑝 𝑆 = 𝑔(0) = ∑ 𝑓(𝑣𝑗 )𝑏𝑗 𝑚𝑜𝑑 𝑝 𝑣ớ𝑖 𝑏𝑗 = 1≤𝑗≤3 1≤𝑖≤3,𝑖≠𝑗 Áp dụng công thức ta được: b0 = 1847 b1 = 793 b2 = 1359 𝑆 = 𝑔(0) = ∑ 𝑓(𝑣𝑗 )𝑏𝑗 𝑚𝑜𝑑 𝑝 𝑣 = 472 0≤𝑗 K = ABCDEF0123456789(HEX) Khi đã có K, tai địa điểm thi giải mã để mở đề thi tiến hành thi Như vậy, với thật toán DES và lược đồ chia sẻ bí mật đảm bảo an tồn thơng tin, khơng bị lộ đề thi, đảm bảo tính minh bạch kỳ thi Đây là ứng dụng có hiệu cao thực tiễn 56 4.3 Chương trình minh họa C++ #include #include #include #include #include #define max 30 using namespace std; long mul_inv(long a, long b) //a^-1 mod b { long b0 = b, t, q; long x0 = 0, x1 = 1; if (b == 1) return 1; while (a < 0) a+= b; while (a > 1) { q = (long)a/b; t = b, b = a % b, a = t; t = x0, x0 = x1 - q * x0, x1 = t; } if (x1 < 0) x1 += b0; return x1; } ////////////////////////////////////////////////////////// void chiakhoa() { long k, p, m, t; long v[max], a[max]; coutk; coutp; coutm; coutt; cout