Tuy nhiên, phátsinh thêm một vấn đề ngày càng trở nên cấp bách và cần thiết về yêu cầu an tồn mạng, an ninh dữ liệu, bảo mật thơng tin trong mơi trường mạng cũng như trong thực tiễn.An
Tổng quan an toàn và bảo mật thông tin
CHUẨN MÃ DỮ LIỆU DES
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật toán mật mã đã trở nên rõ ràng Các lý do chính là:
− Sự phát triển của công nghệ thông tin và của nhu cầu an toàn & bảo mật thông tin: sự ra đời của các mạng máy tính tiền thân của Internet đã cho phép khả năng hợp tác và liên lạc số hóa giữa nhiều công ty, tổ chức trong các dự án lớn của chính phủ Mỹ.
− Các thuật toán mã hóa cổ điển không thể đảm bảo được tính tin cậy đ漃i hỏi cao.
− Các thiết bị khác nhau đ漃i hỏi sự trao đổi thông tin mật mã thống nhất, chuẩn.
Một chuẩn chung cần thiết phải có với các thuộc tính như:
− Thuật toán được đặc tả và hoàn toàn công khai, tức là tính bảo mật không được phép dựa trên những những đặc điểm của thuật toán mã hóa.
− Việc cài đặt phải dễ dàng để đem lại tính kinh tế.
− Phải mềm dẻo để áp dụng được cho muôn vàn nhu cầu ứng dụng.
Năm 1972, Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (National Institute of Standards and Technology - NIST) đặt ra yêu cầu xây dựng một thuật toán mã hoá bảo mật thông tin với yêu cầu là dễ thực hiện, sử dụng được rộng rãi trong nhiều lĩnh vực và mức độ bảo mật cao Năm 1974, IBM giới thiệu thuật toánLucifer, thuật toán này đáp ứng hầu hết các yêu cầu của NIST Sau một số sửa đổi,năm 1976, Lucifer được NIST công nhận là chuẩn quốc gia Hoa kỳ và được đổi tên thành Data Encryption Standard (DES).
DES là thuật toán mã hoá bảo mật được sử dụng rộng rãi nhất trên thế giới, tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin… và vẫn được tin dùng trong 2 thập kỷ sau đó, trước khi bị thay thế bởi AES.
2.2 Đặc điểm thuật toán DES
− DES là thuật toán mã hóa khối, độ dài mỗi khối là 64 bit.
− Khóa dùng trong DES có độ dài toàn bộ là 64 bit Tuy nhiên chỉ có 56 bit thực sự được sử dụng và 8 bit c漃n lại dùng cho việc kiểm tra.
− DES xuất ra bản mã 64 bit.
− Thuật toán DES được thực hiện 16 v漃ng.
− DES là hệ mật mã đối xứng vì vậy quá trình mã hóa và giải mã sử dụng cùng một khóa.
− DES được thiết kế chạy trên phần cứng.
2.3 Ưu điểm và nhược điểm của thuật toán DES
Nếu dữ liệu đang lựa chọn bảo vệ chỉ có tuổi thọ vài giờ thì lựa chọn DES là hợp lý Phương pháp mã hoá DES nhanh hơn so với thuật toán TDES/AES.
Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ Khóa DES đã từng bị phá trong v漃ng chưa đầy 24 giờ Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù | trên lý thuyết phương pháp này vẫn có thể bị phá Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến).
Mặc dù đã có nhiều nghiên cứu về phá mã DES hơn bất kỳ phương pháp mã hóa khối nào khác nhưng phương pháp phá mã thực tế nhất hiện nay vẫn là tấn công kiều duyệt toàn bộ Nhiều đặc tính mật mã hóa của DES đã được xác định và từ đó ba phương pháp phá mã khác được xác định với mức độ phức tạp nhỏ hơn tấn công duyệt toàn bộ Tuy nhiên các phương pháp này đ漃i hỏi một số lượng bản rõ quá lớn (để tấn công lựa chọn bàn rõ) nên hầu như không thể thực hiện được trong thực tế.
“NSA (National Standards Association) coi DES là một trong những sai lầm lớn nhất Nếu họ biết trước rằng chi tiết của thuật toán sẽ được công bố để mọi người có thể viết chương trình phần mềm, họ sẽ không bao giờ đồng ý.”
Hình 4 Sơ đồ một vòng DES
Quá trình mã hóa gồm 3 giai đoạn. a) Giai đoạn 1:
Bản rõ x (64 bit) được hoán vị khởi tạo IP (Initial Permutation) tạo nên xâu bit x0 Chia x0 thành 2 khối L0 gồm 32 bit đầu tiên và R0 gồm 32 bit cuối. x 0 = IP(x) = L 0 R 0
Hình 5 Chia xâu x 0 thành 2 khối L 0 và R 0
Hoán vị IP nhằm đổi chỗ khối dữ liệu vào, thay đổi vị trí của các bit trong khối dữ liệu vào Ví dụ: hoán vị IP chuyển bit 1 thành bit 58, bit 2 thành bit 50, bit 3 thành bit 42… b) Giai đoạn 2:
Từ L0 và R0 sẽ lặp 16 v漃ng, tại mỗi v漃ng tính :
Ri = Li-1 ⊕ f(Ri-1, Ki) với 𝐢 = 𝟏, 𝟏𝟔
⊕ là phép XOR của 2 xâu bit.
Ki là các xâu có độ dài 48 bit được tính như là các hàm của khóa
K K1 đến K16 lập nên một lịch khóa. c) Giai đoạn 3: Áp dụng hoán vị ngược IP -1 cho xâu bit R16L16 để thu dược bản mã y (64 bit).
Hàm F lấy đối số đầu tiên là xâu nhập Ri-1 (32 bit), đối số thứ hai là Ki (48 bit) và tạo ra xâu xuất có độ dài 32 bit.
Hàm F được thực hiện qua các bước:
+) Bước 1: Đới số đầu tiên Ri-1 sẽ được “mở rộng” thành xâu có độ dài 48 bit thông qua hàm mở rộng E cố định.
Hàm mở rộng E: E(Ri-1) bao gồm 32 bit từ Ri-1, được hoán vị theo một cách thức xác định với 16 bit được tạo ra 2 lần.
+) Bước 2: Tính E(Ri-1) ⊕ Ki thu được kết quả là một khối 48 bit Khối này sẽ được chia thành 8 khối mỗi khối 6 bit B = B1B2B3B4B5B6B7B8
+) Bước 3: Cho các khối Bi đi qua hộp Si sẽ biến một khối 6 bit thành một khối Ci 4 bit.
+) Bước 4: Xâu bit C = C1C2C3C4C5C6C7C8 có độ dài 32 bit được hoán vị tương ứng với hoán vị cố đinh P Kết quả là P(C) = f(Ri-1, K1).
Bảng 4: Hoán vị cố định P.
− Dữ liệu vào 6 bit cho ra kết quả 4 bit Dữ liệu ra là giao của hàng và cột.
− Mỗi hộp S-box là một bảng gồm 4 hàng 16 cột được đánh số từ 0 Như vậy mỗi hộp S có hàng 0, 1, 2, 3; cột 0, 1, ,15 Mỗi phần tử của hộp là một số 4 bit Sáu bit vào hộp S sẽ xác định số hàng và số cột để tìm kết quả ra.
− Mỗi khối Bi có 6 bit kí hiệu là b1, b2, b3, b4, b5 và b6 Bit b1 và b6 được kết hợp thành một số 2 bit, nhận giá trị từ 0 đến 3, tương ứng với một hàng trong bảng S Bốn bit ở giữa từ b2 tới b5 được kết hợp thành một số 4 bit, nhận giá trị từ 0 đến 15, tương ứng với một cột trong bảng S.
Hình 7 Sơ đồ tạo khóa con
Khóa K là một xâu có độ dài 64 bit trong đó 56 bit dùng làm khóa và 8 bit dùng để kiểm tra sự bằng nhau để phát hiện lỗi Các bit ở các vị trí 8, 16, 24, 32, 40,
48, 56, 64 được xác định là các bit kiểm tra.
Quá trình tạo khóa con:
− Cho khóa K 64 bit, loại bỏ các bit kiểm tra tại các vị trí 8, 16, 24, 32, 40,
48, 56, 64 Thực hiện hoán vị các bit c漃n lại của K tương ứng với hoán vị cố định PC-1.
Bảng 6: Hoán vị cố định PC-1.
− 56 bit kết quả được chia thành 2 khối C0 , D0 mỗi khối 28 bit trong dó
C0 gồm 28 bit đầu tiên và D0 gồm 28 bit c漃n lại.
− Tại mỗi v漃ng lặp, Ci và Di sẽ có được từ phép dịch trái các bit của Ci-1 và
Di-1 Các v漃ng 1, 2, 9, 16 dịch trái 1 bit, các v漃ng c漃n lại dịch trái 2 bit.
Bảng 7: Bảng dịch bit tại các vòng lặp của DES.
− Sau khi dịch trái, cho xâu CiDi (56 bit) qua hoán vị cố định PC-2 thu được khóa Ki (48 bit).
Bảng 8: Hoán vị cố định PC-2.
Việc giải mã dùng cùng một thuật toán như việc mã hoá. Để giải mã dữ liệu đã được mã hoá, quá trình giống như mã hoá được lặp lại nhưng các chìa khoá phụ được dùng theo thứ tự ngược lại từ K16 đến K1, nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K17-i chứ không phải với Ki.
2.4.6 Bài toán mã hóa và giải mã sử dụng thuật toán DES
Giả sử ta mã hóa bản rõ sau trong dạng thập lục phân 0123456789ABCDEF và sử dụng khóa thập lục phân 133457799BBCDFF1.
Khóa trong dạng nhị phân không có các bit kiểm tra sẽ là:
00010010011010010101101111001001101101111011011111111000 Áp dụng hoán vị IP, ta nhận được L0 và R0 (trong dạng nhị phân):
16 v漃ng lặp mã hóa được thể hiện như sau:
Cuối cùng, áp dụng hoán vị IP -1 cho R16L16 ta nhận được bản mã trong dạng thập lục phân như sau:
Kết quả nghiên cứu
Giới thiệu
Tên đề tài nghiên cứu: Ứng dụng thuật toán DES và lược đồ chia sẻ bí mật trong đăng ký bỏ phiếu điện tử.
Các bước thực hiện triển khai đề tài bao gồm:
− Nghiên cứu nội dung các thuật toán.
− Thiết kế và cài đặt chương trình demo thuật toán.
Hình thức sản phẩm: sản phẩm ứng dụng.
Kết quả đạt được: Nghiên cứu, Cài đặt demo thuật toán.
Nội dung thuật toán
2.1 Bài toán chia sẻ bí mật
Sơ đồ chia sẻ bí mật không phải là một lĩnh vực mới mẻ của an toàn bảo mật thông tin, nhưng hứa hẹn sẽ mang đến nhứng ứng dụng rộng khắp: khóa mã hóa , mã phóng tên lửa và số tài khoản ngân hàng…
Sơ đồ chia sẻ bí mật chính là phương thức dùng đề chia một bí mật ra làm nhiều phần riêng biệt sau đó phân phối tới những người tham gia Trong đó chỉ với số người được chỉ định trước mới có khả năng khôi phục bí mật bằng cách gộp những phần thông tin của họ, những người không được chỉ định sẽ không thu được bất kỳ thông tin gì về bí mật. Ý tưởng: thông tin quan trọng cần bí mật, không nên trao cho một người nắm giữ, mà phải chia thông tin đó thành nhiều mảnh và trao cho mỗi người một hay một số mảnh Thông tin gốc chỉ có thể được xem lại, khi mọi người giữ các mảnh thông tin đều nhất trí Các mảnh thông tin được khớp lại để được thông gốc.
− Thông tin cần giữ bí mật được chia thành nhiều mảnh:
Thông tin bí mật Các mảnh thông tin được chia sẻ
− Khi các mảnh được khớp lại sẽ cho ta thông tin ban đầu:
Các mảnh thông tin cần để ghép lại Thông tin bí mật được khôi phục Để thực hiện công việc trên chúng ta phải sử dụng một sơ đồ gọi là Sơ đồ chia sẻ bí mật.
Khái niệm chia sẻ bí mật: Sơ đồ chia sẻ bí mật dùng để chia sẻ một thông tin cho m thành viên, sao cho chỉ những tập con hợp thức các thành viên mới có thể khôi phục lại thông tin bí mật, c漃n lại không ai có thể làm được điều đó.
Các thành phần của sơ đồ chia sẻ bí mật:
− Người phân phối bí mật (Dealer): Là người trực tiếp chia bí mật thành nhiều phần.
− Những người tham gia nhận dữ liệu từ Dealer (Participant), ký hiệu P.
− Nhóm có khả năng khôi phục bí mật (Acess structure): Là tập con của P trong đó có các tập con có khả năng khôi phục bí mật. Ứng dụng sơ đồ chia sẻ bí mật:
− Chia sẻ thông tin mật thành nhiều mảnh.
− Chia sẻ Passwod, khóa mật thành nhiều mảnh Mỗi nơi, mỗi người hay mỗi máy tính cất giấu 1 mảnh.
2.1.2 Các sơ đồ chia sẻ bí mật
Sơ đồ chia sẻ bí mật là một phương thức để chia sẻ bí mật ra nhiều phần sau đó phân phối cho một tập hợp những người tham gia sao cho các tập con trong số những người này được chỉ thị, có khả năng khôi phục lại bí mật bằng cách kết hợp dữ liệu của họ.
Một sơ đồ chia sẻ bí mật là hoàn hảo, nếu bất kì một tập hợp những người tham gia mà không được chỉ định, sẽ không thu được thông tin về bí mật.Cấu trúc truy nhập và sơ đồ chia sẻ bí mật a) Sơ đồ chia sẻ bí mật của Shamir Ý tưởng về sơ đồ ngưỡng giới hạn của Shamir dựa trên tính chất:
− 2 điểm có thể định nghĩa một đường thẳng.
− 3 điểm định nghĩa được 1 parabol.
− 4 điểm định nghĩa được một hình lập phương.
⇒ Cứ như thế một cách tổng quát cần n+1 điểm để định nghĩa một đa thức bậc n.
Bài toán: Cho t, m là các số nguyên dương, t ≤ m Một sơ đồ ngưỡng A(t, m) là một phương pháp phân chia khóa K cho một tập w thành viên (kí hiệu là P) sao cho t thành viên bất kì có thể tính được K nhưng không một nhóm (t-1) thành viên nào có thể làm được điều đó.
− Giá trị K được chọn bởi một thành viên đặc biệt được gọi là người phân phối (D), D ∉ P.
− D phân chia khóa K cho mỗi thành viên trong P bằng cách cho mỗi thành viên một thông tin cục bộ gọi là mảnh Các mảnh được phân phát một cách bí mật để không thành viên nào biết được mảnh được trao cho các thành viên khác.
− Một tập con các thành viên B ∈ P sẽ kết hợp các mảnh để tính khóa K.
+) Nếu |B| ≥ t thì họ có khả năng tính được K.
+) Nếu |B| < t thì họ không thể tính được K.
− Gọi P là tập các giá trị được phân phối khóa K: P = {pi : 1 ≤ i ≤ m}
− K là tập khóa: tất cả các khóa K có thể
− S tập mảnh: tập tất cả các mảnh có thể
− Khởi tạo: Chọn số nguyên tố p
+) D chọn 𝑚 phần tử 𝑥i khác nhau, ≠ 0 trong Zp
1 ≤ 𝑖 ≤ 𝑚 (yêu cầu: 𝑚 < 𝑝, Tl: 𝑥i khác nhau, ≠ 0 trong Zp).
+) D trao 𝑥i cho thành viên Pi Giá trị 𝑥i là công khai.
+) D chọn bí mật (ngẫu nhiên, độc lập) (t – 1) phần tử Zp là a1 , …, at-1. +) Với 1 ≤ i ≤ m, D tính: yi = P(xi) t−1 P(x) = K + ∑ ajxj mod p j=1 +) Với 1 ≤ i ≤ m, D sẽ 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
Các hệ số K, a1, …, at-1 là các phần tử chưa biết của Zp, a0 = K là khóa.
Vì yij = P(xij), nên ta có thể thu được t phương trình tuyến tính t ẩn a0, a1,
Nếu các phương trình độc lập tuyến tính thì sẽ có một nghiệm duy nhất và ta được giá trị khoá a0 = K. b) Chia sẻ bí mật dựa trên ý tưởng của Lagrange
Giả sử ta có n thực thể A1, A2, …, An và có 1 người được ủy quyền B biết được toàn bộ khóa bí mật S ∈ N.
Người được ủy quyền B thực hiện các bước sau:
− B chọn 1 số nguyên tố P đủ lớn sao cho: 𝑛 ≤ √𝑝 với S Zp.
− B chon (2n -1) số ngẫu nhiên: a1, a2, …, an-1; v1, v2, …, vn
− B xác định một đa thức với các hệ số a1, …, at-1 trên Zp. f(v) = an-1v n-1 + an-2v n-2 + … + a1v + S (mod p) với v = v1, v2, …, vn
− B gửi Aj cặp (vj, f(vj)) với j = 1, 2, …, n coi như mảnh của riêng Aj.
− Tất cả người A1, …, An có thể hợp tác lại để khôi phục lại bí mật S bằng cách:
− Khi đó dễ dàng xác định được S = g(0) (x = 0)
Ta có định lý như sau:
Nếu n thực thể kết hợp với nhau thì có thể khôi phục bí mật S một cách có hiệu quả đó là: S = g(0) = f(0)
Ví dụ: Có 3 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 f(vj) = (a2vj 2 + a1vj + S) mod p Áp dụng công thúc trên ta có: f(v1) = 1724 ⇒ A1 có cặp (v1, f(v1)) = (626, 1724) f(v2) = 1925 ⇒ A2 có cặp (v2, f(v2)) = (674, 1925) f(v3) = 1241 ⇒ A3 có cặp (v3, f(v3)) = (93, 1241)
Ta lấy 2 cặp (vj, f(vj)) hợp lại xác định được S:
Mà bj = ∏1≤i≤n,i≠j(vj − vi)(x − vi) mod p Áp dụng công thức ta có: b0 = 1847; b1 = 793; b3 = 1359
S = g(0) = 472 c) Ứng dụng lược đồ chia sẻ bí mật của Lagrange để phân phối khóa
Hệ mã DES với khóa 64 bit (trong đó chỉ có 56 bit được sử dụng để mã hóa và giải mã, 8 bit c漃n lại chỉ dùng cho việc kiểm tra) tương đương với 16 số hệ Hexa hay một số nguyên gồm 20 số thập phân Con số bí mật này không quá lớn đối với bài toán chia sẻ bí mật nên việc tính toán là rất hiệu quả. Để phân phối khóa của DES cho người nhận, ta sẽ lấy khóa gồm 20 số thập phân chia nhỏ thành chia nhỏ thành các cặp (𝑣𝑗, 𝑓(𝑣𝑗)) bằng sơ đồ chia sẻ bí mật củaLagrange Sau đó, người nhận sau khi nhận được bản mã hóa và các mảnh (𝑣𝑗,𝑓(𝑣𝑗)) sẽ khôi phục lại khóa để có thể giải mã.
Hình 8 Quá trình phân phối khóa
2.2 Áp dụng thuật toán DES và lược đồ chia sẻ bí mật vào đăng ký bỏ phiếu điện tử
Bài toán: Cử tri gửi hồ sơ đăng ký về cho ban đăng ký thẩm định.
Vấn đề nảy sinh: Trên đường truyền, Hồ sơ Đăng ký của Cử tri có thể bị kẻ gian thay đổi thông tin, hoặc đánh cắp hồ sơ Đăng ký. Ý tưởng giải quyết bài toán: Sử dụng kỹ thuật mã hóa DES và lược đồ chia sẻ bí mật vào đăng ký bỏ phiếu điện tử.
Chương trình chia sẻ khóa bí mật theo sơ đồ ngưỡng Shamir:
Bài toán: Chia khóa bí mật K trong Zp thành t mảnh, phân cho mỗi người giữ 1 mảnh, t ≤ m t thành viên “khớp t mảnh” sẽ nhận được K. a) Chia sẻ khóa
− Khởi tạo: Chọn số nguyên tố p
+) D chọn 𝑚 phần tử 𝑥i khác nhau, ≠ 0 trong Zp
1 ≤ 𝑖 ≤ 𝑚 (yêu cầu: 𝑚 < 𝑝, Tl: 𝑥i khác nhau, ≠ 0 trong Zp).
+) D trao 𝑥i cho thành viên Pi Giá trị 𝑥i là công khai.
+) D chọn bí mật (ngẫu nhiên, độc lập) (t – 1) phần tử Zp là a1 , …, at-1. +) Với 1 ≤ i ≤ m, D tính: yi = P(xi) t−1 P(x) = K + ∑ ajxj mod p j=1 +) Với 1 ≤ i ≤ m, D sẽ trao mảnh yi cho Pi. b) Khôi phục khóa
Giải hệ phương trình tuyến tính t ẩn, t phương trình
Các hệ số K, a 1 , …, a t-1 là các phần tử chưa biết của Zp, a 0 = K là khóa.
Vì y ij = P(x ij ), nên ta có thể thu được t phương trình tuyến tính t ẩn a 0 , a 1 ,…, a t-1
Nếu các phương trình độc lập tuyến tính thì sẽ có một nghiệm duy nhất và ta được giá trị khoá a 0 = K.
THIẾT KẾ, CÀI ĐẶT CHƯƠNG TRÌNH DEMO
Hình 9 Giao diện chương trình
− Chia sẻ khóa bí mật:
+) Bước đầu tiên ta nhập giá trị khóa cần chia sẻ.
+) Nhập số lượng thành viên giữ khóa.
+) Nhập số lượng thành viên tối thiểu để có thể mở khóa.
+) Nhập giá trị p (p ở đây là một số nguyên tố).
+) Click vào nút “Chia sẻ khóa”, và kết quả sẽ được hiện thị ra bảng kết quả Giá trị Pi được trao cho thành viên Xi tương ứng.
+) Click vào nút “Nhập lại” nếu muốn nhập lại các giá trị từ đầu.
Hình 10 Giao diện chia sẻ khóa bí mật
− Khôi phục khóa bí mật:
+) Tại bảng chứa các mảnh khóa đã chia, ta tích chọn vào cột “Lựa chọn” để chọn các mảnh khóa đem đi khôi phục (Số lượng lựa chọn phải lớn hơn hoặc bằng số lượng tối thiểu thành viên có thể ghép khóa).
+) Click vào nút “Khôi phục khóa” Kết quả sẽ được hiển thị ra phía bên dưới.
Hình 11 Giao diện khôi phục khóa bí mật
THỰC HIỆN BÀI TOÁN
Tên SV Công việc Đào Phi Hùng - Tìm hiểu Tổng quan về an toàn bảo mật thông tin.
- Áp dụng DES vào lược đồ Đào Mạnh Hùng - Tìm hiểu thuật toán DES: lịch sử, đặc điểm, thuật toán, ưu điểm nhược điểm.
- Tìm hiểu về hệ mật mã, các phương pháp mã hóa cổ điển.
Hoàng Ngọc Hưng -Quá trình mã hóa thuật toán DES.
-Tìm hiểu về hàm F hộp S tạo khóa K.
Lã Đữc Huy -Quá trình giải mã thuật toán DES.
-Bài toán mã hóa và giải mã sử dụng thuật toán DES. Đinh Tấn Hưng -Tìm hiểu bài toán chia sẻ bí mật.
-Tìm hiểu sơ đồ chia sẻ bí mật.
4.2 Đào Phi Hùng – Tổng quan về an toàn bảo mật thông tin
❖ Nội dung 1: Tìm hiểu tổng quan về an toàn bảo mật thông tin
− Sự cần thiết của việc đảm bảo an toàn thông tin
− An toàn thông tin là gì?
An toàn thông tin nghĩa là thông tin được bảo vệ, các hệ thống và dịch vụ có khả năng chống lại những sự can thiệp, lỗi và những tai họa không mong đợi, các thay đổi tác động đến độ an toàn của hệ thống là nhỏ nhất Hệ thống không an toàn là hệ thống tồn tại những điểm: thông tin bị r漃 rỉ ra ngoài, thông tin bị thay đổi,
− Các yêu cầu an toàn bảo mật thông tin
+ Đảm bảo tính tin cậy
+ Đảm bảo tính toàn vẹn
+ Đảm bảo tính sẵn sàng
+ Đảm bảo tính không thể chối bỏ
− Các phương pháp bảo vệ thông tin
+ Đăng ký tên /mật khẩu
❖ Nội dung 2: Áp dụng DES vào lược đồ
Chương trình chia sẻ khóa bí mật theo sơ đồ ngưỡng Shamir:
Bài toán: Chia khóa bí mật K trong Zp thành t mảnh, phân cho mỗi người giữ 1 mảnh, t ≤ m t thành viên “khớp t mảnh” sẽ nhận được K.
Khởi tạo: Chọn số nguyên tố p
+) D chọn 𝑚 phần tử 𝑥i khác nhau, ≠ 0 trong Zp
1 ≤ 𝑖 ≤ 𝑚 (yêu cầu: 𝑚 < 𝑝, Tl: 𝑥i khác nhau, ≠ 0 trong Zp).
+) D trao 𝑥i cho thành viên Pi Giá trị 𝑥i là công khai.
+) D chọn bí mật (ngẫu nhiên, độc lập) (t – 1) phần tử Zp là a1 , …, at-1. +) Với 1 ≤ i ≤ m, D tính: yi = P(xi) t−1P(x) = K + ∑ ajxj mod p j=1 +) Với 1 ≤ i ≤ m, D sẽ trao mảnh yi cho Pi.
Giải hệ phương trình tuyến tính t ẩn, t phương trình
Các hệ số K, a 1 , …, a t-1 là các phần tử chưa biết của Zp, a 0 = K là khóa.
Vì y ij = P(x ij ), nên ta có thể thu được t phương trình tuyến tính t ẩn a 0 , a 1 ,…, a t-1
Nếu các phương trình độc lập tuyến tính thì sẽ có một nghiệm duy nhất và ta được giá trị khoá a 0 = K.
Viết chương trình demo với ngôn Javascript
Hình 12 Giao diện demo mã hóa DES ngôn ngữ JS
Hình 13 Giao diện chia sẻ khóa và khôi phục khóa ngôn ngữ JS
4.3 Đào Mạnh Hùng – Tìm hiểu thuật toán DES
❖ Nội dung 1: Tìm hiểu thuật toán DES a) Lịch sử
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật toán mật mã đã trở nên rõ ràng.
Năm 1974, IBM giới thiệu thuật toán Lucifer.
Năm 1976, Lucifer được NIST công nhận là chuẩn quốc gia Hoa kỳ và được đổi tên thành Data Encryption Standard (DES).
DES là thuật toán mã hoá bảo mật được sử dụng rộng rãi nhất trên thế giới, tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin… và vẫn được tin dùng trong 2 thập kỷ sau đó, trước khi bị thay thế bởi AES. b) Đặc điểm
− DES là thuật toán mã hóa khối, độ dài mỗi khối là 64 bit.
− Khóa dùng trong DES có độ dài toàn bộ là 64 bit Tuy nhiên chỉ có 56 bit thực sự được sử dụng và 8 bit c漃n lại dùng cho việc kiểm tra.
− DES xuất ra bản mã 64 bit.
− Thuật toán DES được thực hiện 16 v漃ng.
− DES là hệ mật mã đối xứng vì vậy quá trình mã hóa và giải mã sử dụng cùng một khóa.
− DES được thiết kế chạy trên phần cứng. c) Ưu - nhược điểm
+ Có tính bảo mật cao.
+ Nó có thể triển khai trên thiết bị điện tử có kích thước nhỏ.
− Nhược điểm: DES có kích cỡ của không gian khoá 256 là quá nhỏ, không đủ an toàn, cho nên những máy có mục đích đặc biệt có thể sẽ bẻ gãy và d漃 ra khoá rất nhanh.
❖ Nội dung 2: Tìm hiểu về hệ mật mã, các phương pháp mã hóa cổ điển. a) Hệ mật mã
− Vai tr漃 của hệ mật mã:
+ Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText).
+ Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity).
+ Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng.
− Một hệ mã mật là bộ 5 (P, C, K, E, D) thoả mãn các điều kiện sau:
+ P là không gian bản rõ: là tập hữu hạn các bản rõ có thể có.
+ C là không gian bản mã: là tập hữu hạn các bản mã có thể có.
+ K là không gian khoá: là tập hữu hạn các khoá có thế có.
● Đối với mỗi k ∈ K có một quy tắc mã: eK: P → C và một quy tắc giải mã tương ứng dK: C → P.
● Với mỗi eK: P → C và dK: C → P là những hàm mà dK(eK(x)) = x với mọi bản rõ x ∈ P.
● Hàm giải mã dK chính là ánh xạ ngược của hàm mã hóa eK
Phân loại hệ mật mã: Hệ mật mã đối xứng và Hệ mật mã bất đối xứng.
Các phương pháp chính cho việc mã hoá và giải mã:
− Sử dụng khóa đối xứng.
− Sử dụng khóa bất đối xứng.
− Sử dụng hàm băm một chiều. b) Các hệ mật mã cổ điển
❖ Viết chương trình demo với ngôn ngữ Python.
Hình 14 Giao diện mã hóa DES ngôn ngữ python
Hình 15 Giao diện chia sẻ khóa và khôi phục khóa ngôn ngữ python
4.4 Hoàng Ngọc Hưng - Quá trình mã hóa thuật toán DES
Nội dung 1: Sơ đồ khối
- Vẽ được sơ đồ khối của chương trình DES và sơ đồ khối của quá trình sinh khóa sau khi tìm hiểu tài liệu
Nội dung 2: Quá trình mã hóa:
1.Với bản rõ cho trước x(64 bit), 1 xâu x' sẽ được tạo ra bằng cách hoán vị IP
2.Tính toán 16 lần lập theo 1 hàm xác định.Ta sẽ tính LiRi (1≤ i ≤ 16) theo quy tắc.
3 Áp dụng hoán vị ngược IP -1 cho xâu bit R16L16 để thu dược bản mã y
- Ri-1 sẽ được “mở rộng” thành xâu có độ dài 48 bit qua hàm mở rộng E cố định.
- Tính E(Ri-1) XORKi thu được B = B1B2B3B4B5B6B7B8 (mỗi khối 6 bit)
- Bi đi qua hộp Si sẽ biến Bi thành Ci 4 bit.
- C = C1C2C3C4C5C6C7C8 hoán vị tương ứng với hoán vị cố đinh P Kết quả là P(C) = f(Ri-1, K1).
Hộp Si sẽ biến khối đầu vào Bi (6bit) thành khối Ci(4bit) phục vụ việc tính hàm F
Nội dung 5: Quá trình tạo khóa K
− Cho khóa K 64 bit qua hoán vị cố định PC1 được 2 khối C0,D0(28 bit 1 khối)
− Tại mỗi v漃ng lặp, Ci và Di sẽ có được từ phép dịch trái các bit của Ci-1 và
Di-1 Các v漃ng 1, 2, 9, 16 dịch trái 1 bit, các v漃ng c漃n lại dịch trái 2 bit.
− CiDi (56 bit) qua hoán vị cố định PC-2 thu được khóa Ki (48 bit).
Viết chương trình demo với ngôn ngữ C#
Hình 15 Giao diện mã hóa DES và chia sẻ khóa ngôn ngữ C#
4.5 Lã Đức Huy – Quá trình giải mã thuật toán DES
❖ Nội dung 1: Quá trình giải mã thuật toán DES
Việc giải mã dùng cùng một thuật toán như việc mã hoá. Để giải mã dữ liệu đã được mã hoá, quá trình giống như mã hoá được lặp lại nhưng các chìa khoá phụ được dùng theo thứ tự ngược lại từ K16 đến K1, nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K17-i chứ không phải với Ki.
❖ Nội dung 2: Bài toán mã hóa và giải mã sử dụng thuật toán DES
Giả sử ta mã hóa bản rõ sau trong dạng thập lục phân 0123456789ABCDEF và sử dụng khóa thập lục phân 133457799BBCDFF1
Thu được kết quả: Y = 85E813540F0AB405
❖ Viết chương trình demo với ngôn ngữ Java
Hình 16 Giao diện mã hóa và giải mã khóa ngôn ngữ Java
Hình 17 Giao diện chia sẻ và khôi phục khóa ngôn ngữ Java
4.6 Đinh Tấn Hưng – Tìm hiểu chia sẻ bí mật và sơ đồ chia sẻ bí mật
❖ Nội dung 1: Tìm hiểu chia sẻ bí mật.
Khái niệm chia sẻ bí mật: Sơ đồ chia sẻ bí mật dùng để chia sẻ một thông tin cho m thành viên, sao cho chỉ những tập con hợp thức các thành viên mới có thể khôi phục lại thông tin bí mật, c漃n lại không ai có thể làm được điều đó.
❖ Nội dung 2: Tìm hiểu sơ đồ chia sẻ bí mật
Sơ đồ chia sẻ bí mật là một phương thức để chia sẻ bí mật ra nhiều phần sau đó phân phối cho một tập hợp những người tham gia sao cho các tập con trong số những người này được chỉ thị, có khả năng khôi phục lại bí mật bằng cách kết hợp dữ liệu của họ.
Một sơ đồ chia sẻ bí mật là hoàn hảo, nếu bất kì một tập hợp những người tham gia mà không được chỉ định, sẽ không thu được thông tin về bí mật.Cấu trúc truy nhập và sơ đồ chia sẻ bí mật
❖ Viết chương trình demo với ngôn ngữ PHP
Hình 18 Giao diện mã hóa DES ngôn ngữ PHP
Hình 19 Giao diện chia sẻ khóa ngôn ngữ PHP
Hình 20 Giao diện khôi phục khóa ngôn ngữ PHP
Kiến thức lĩnh hội và bài học kinh nghiệm
Nội dung đã thực hiện
Sau một thời gian nghiên cứu và tìm hiểu, đề tài đã đạt một số kết quả:
− Hiểu và nắm được phương pháp mã hóa DES, cách mã hóa và giải mã dữ liệu.
− Tìm hiểu lược đồ chia sẻ bí mật trong đó có lược đồ chia sẻ bí mật của Lagrange về phương thức chia sẻ và cách khôi phục khóa mật.
− Áp dụng chuẩn dữ liệu DES và lược đồ chia sẻ bí mật để bảo mật dữ liệu trong đăng ký bỏ phiếu điện tử.
Hướng phát triển
Đề tài có tính khả thi cao trong thực tế giúp cho thông tin trong phiếu điện tử an toàn, bí mật, toàn vẹn và giúp cho người tham gia bỏ phiếu một cách dễ dàng, nhanh chóng.
Tuy khó khăn trong việc xắp sếp thời gian của mỗi thành viên trong nhóm để có thể họp mặt online qua Zoom hay Google Meet để làn bài tập lớn, trao đổi những thứ mà mỗi thành viên tìm hiểu được nhưng với sự giúp đỡ của giáo viên hướng dẫn và sự năng động sáng tạo của các bạn trong nhóm, chúng em đã hoàn thành được đề tài.