1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo bài tập lớn môn an toàn và bảo mật thông tin

58 65 0

Đ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

Thông tin cơ bản

Tiêu đề Ứng Dụng Thuật Toán DES Và Lược Đồ Chia Sẻ Bí Mật Vào Thi Tuyển Sinh
Tác giả Đặng Thành An, Dương Dĩ An, Nguyễn Tuấn Anh, Phạm Hoàng Anh, Trần Trường Anh
Người hướng dẫn ThS. Trần Phương Nhung
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 58
Dung lượng 1 MB
File đính kèm chương trình bằng C# java js php.zip (4 KB)

Cấu trúc

  • CHƯƠNG I TỔNG QUAN (10)
    • 1.1. Tổng quan về an toàn và bảo mật thông tin (10)
    • 1.2. An toàn thông tin bằng mật mã (10)
      • 1.2.1. Mã hóa bằng khóa bí mật (11)
      • 1.2.2. Mã hóa bằng khóa công khai (12)
    • 1.3. Chuẩn mã dữ liệu DES (13)
      • 1.3.1. Hệ mã hóa khối DES (13)
      • 1.3.2. Kỹ thuật hệ mã hóa DES (13)
      • 1.3.3. Ưu nhược điểm (16)
      • 1.3.4. Sơ đồ khối (19)
      • 1.3.5. Thuật toán (21)
    • 1.4. Lập mã DES (33)
  • CHƯƠNG II KẾT QUẢ NGHIÊN CỨU (38)
    • 2.1. Kỹ thuật Chia sẻ khóa bí mật (Secret Sharing) (38)
      • 2.1.1. Khái niệm về chia sẻ bí mật (38)
      • 2.1.2. Các sơ đồ chia sẻ bí mật (39)
    • 2.2. Áp dụng thuật toán DES và lược đồ chia sẻ bí mật vào thi tuyển sinh (46)
      • 2.2.1. Bài toán ứng dụng (46)
      • 2.2.2. Quy trình thực hiện giải bài toán (0)
      • 2.2.3. Chương trình minh họa (50)
      • 2.2.4. Phân công công việc (52)
  • CHƯƠNG III KẾT LUẬN (53)
    • 3.1. Nội dung đã thực hiện (53)
    • Ảnh 1.1: Quá trình mã hóa và giải mã thông tin (0)
    • Ảnh 1.2: Sơ đồ mã hoá và giải mã bằng khoá riêng (0)
    • Ảnh 1.3: Sơ đồ mã hoá và giải mã bằng khoá công khai (0)
    • Ảnh 1.4: Sơ đồ khối chương trình DES (0)
    • Ảnh 1.5: Sơ đồ khối quá trình sinh khóa (0)
    • Ảnh 1.6: Sơ đồ mã hóa DES (0)
    • Ảnh 1.7: Sơ đồ 1 vòng DES (0)
    • Ảnh 1.8: Sơ đồ hàm F (0)
    • Ảnh 1.9: Sơ đồ tạo khoá con (0)
    • Ảnh 1.10: Sơ đồ của hàm mở rộng (0)
    • Ảnh 2.1: DES và quá trình phân phối khóa (0)
    • Ảnh 2.2: Sơ đồ quy trình bảo mật đề thi gửi từ nơi ra đề đến nơi tổ chức thi 35 Ảnh 2.3: Chương trình mình họa (0)

Nội dung

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 toán DES và lược đồ chia sẻ bí mật vào thi tuyển sinh CBHD ThS Trần Phương Nhun.

TỔNG QUAN

Tổng quan về an toàn và bảo mật thông tin

An toàn thông tin được định nghĩa từ nhiều nguồn khác nhau, nhưng có thể hiểu đơn giản là việc bảo vệ thông tin, hệ thống và dịch vụ trước các can thiệp, lỗi và tai họa không mong muốn Điều này có nghĩa là các thay đổi ảnh hưởng đến độ an toàn của hệ thống cần phải được giữ ở mức tối thiểu Một hệ thống không an toàn sẽ có những điểm yếu như thông tin bị rò rỉ hoặc bị thay đổi.

An toàn thông tin bằng mật mã

Mã hóa và giải mã thông tin Ảnh 1.1: Quá trình mã hóa và giải mã thông tin

- Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao cho người khác không thể đọc hiểu được

- Giải mã: Là quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành dạng gốc ban đầu

- Bản mã: Tệp dữ liệu đã được mã hóa

Một hệ thống mã hóa bao gồm các thành phần sau:

- PlainText : Bản tin sẽ được mã hóa hay bản tin gốc

- CipherText : Bản tin đã được mã hóa hay bản tin mã

- Thuật toán mã hóa và giải mã :

+ Encryption: quá trình chuyển bản tin gốc sang dạng mật mã

+ Decryption: quá trình giải bản tin dạng mật mã trở về bản tin gốc + Cách chọn khóa: giá trị toán học dùng để thực hiện mã hóa

Nhiều phương pháp mã hóa phức tạp đã được phát triển nhằm ngăn chặn việc phá mật mã mà không có chìa khóa Mặc dù không thể khẳng định việc tìm chìa khóa là không thể, nhưng nếu mức độ khó khăn đủ lớn để làm nản lòng kẻ xâm nhập, thì đó đã là một biện pháp an toàn hiệu quả Quá trình mã hóa và giải mã có thể được minh họa qua một sơ đồ.

1.2.1 Mã hóa bằng khóa bí mật

Hệ thống mã hóa với khóa bí mật, hay còn gọi là mã hóa đối xứng, sử dụng một khóa duy nhất cho cả quá trình mã hóa và giải mã.

+ Stream Algorithms/Stream Ciphers: các thuật toán hoạt động trên văn bản bình thường theo từng bit một

+ Block Algorithms/Block Ciphers : các thuật toán hoạt động trên văn bản theo các khối (32 bit, 64 bit, 128 bit, )

+ Một số thuật toán đang được sử dụng rộng rãi hiện nay : DES, TripleDES, RC5, RC6, Rijndael

Quá trình mã hóa và giải mã sử dụng khóa bí mật được thể hiện trong sơ đồ dưới đây, cho thấy cách thức bảo mật thông tin hiệu quả Ảnh 1.2 minh họa rõ ràng quy trình này.

1.2.2 Mã hóa bằng khóa công khai Ảnh 1.3: Sơ đồ mã hóa và giải mã bằng khóa công khai

Mã hóa bằng khóa công khai, hay còn gọi là mã hóa bất đối xứng, sử dụng hai khóa khác nhau cho quá trình mã hóa và giải mã Hệ thống này khác với mã hóa bằng khóa bí mật, vì nó bao gồm một khóa công khai cho người mã hóa và một khóa riêng tư được giữ bí mật cho người giải mã Để thực hiện mã hóa và giải mã thông điệp, hệ thống cần có một quy trình sinh ra cặp khóa này, với các khóa được xem như là một đôi.

+ Public-key (khóa công khai): được phép công khai mà không phải chịu rủi ro về an toàn Khóa này được dùng để mã hóa thông điệp

+ Private-key (khóa bí mật): không được để lộ Mỗi thông điệp được mã hóa bằng public-key chỉ có thể giải mã bằng một khóa mật thích hợp

Một số thuật toán mã hóa công khai phổ biến như RSA và Diffie-Hellman Key Exchange Algorithm được sử dụng để phân phối và trao đổi khóa Với sự bùng nổ của mạng toàn cầu, mọi hệ thống thông tin đều phải đối mặt với thách thức về an toàn và bảo mật Có nhiều chiến lược và phương pháp để đảm bảo an toàn thông tin, trong đó mật mã đóng vai trò quan trọng và được ứng dụng rộng rãi không chỉ trong ngành công nghệ thông tin mà còn để bảo mật các thông tin và tài liệu quan trọng trong đời sống, chẳng hạn như bảo mật đề thi trong tuyển sinh.

Chuẩn mã dữ liệu DES

1.3.1 Hệ mã hóa khối DES

Các hệ mã hóa cổ điển thường mã hóa từng ký tự riêng lẻ, điều này tạo điều kiện thuận lợi cho việc phá mã Do đó, người ta đã chuyển sang sử dụng các phương pháp mã hóa khác, trong đó nhiều ký tự được mã hóa đồng thời như một khối thống nhất Trong phương pháp này, kích thước của mỗi khối và kích thước khóa là những tham số quan trọng cần được chú ý.

1.3.2 Kỹ thuật hệ mã hóa DES

Trong phương pháp mã hóa DES, kích thước khối dữ liệu là 64 bit và quá trình mã hóa diễn ra qua 16 vòng lặp, mỗi vòng sử dụng một khóa chu kỳ 48 bit được sinh ra từ khóa ban đầu dài 56 bit Hệ thống này sử dụng 8 bảng hằng số S-box để thực hiện các thao tác mã hóa.

Quá trình mã hóa của DES được tóm tắt như sau: Thông điệp nguồn x được biểu diễn bằng dãy 64 bit, trong khi khóa k có độ dài 56 bit Mã hóa diễn ra qua ba giai đoạn chính.

1 Tạo dãy 64 bit x0 bằng cách hoán vị x theo hoán vị IP (InitialPermutation)

Biểu diễn x0 =IP(x)=L0R0, L0 gồm 32 bit bên trái của x0, R0 gồm 32 bit bên phải của x0.

Biểu diễn dãy 64 bit x thành 2 thành phần L và R

2 Thực hiện 16 vòng lặp từ 64 bit thu được và 56 bit của khóa k (chỉ sử dụng 48 bit của khóa k trong mỗi vòng lặp) 64 bit kết quả thu được qua mỗi vòng lặp sẽ là đầu vào cho vòng lặp sau Các cặp từ 32 bit Li, Ri (với 1 ≤

I ≤ 16 ) được xác định theo quy tắc sau:

Biểu diễn phép toán XOR trên hai dãy bit K1, K2, ,K16 là các dãy 48 bit được phát sinh từ khóa K Mỗi khóa Ki được tạo ra bằng cách hoán vị các bit trong khóa K ban đầu.

3 Áp dụng hoán vị ngược IP -1 đối với dãy bit R16L16, thu được từ y gồm

Hàm f được sử dụng trong bước 2 và bao gồm hai tham số: tham số A là một dãy 32 bit, trong khi tham số J là một dãy 48 bit Kết quả của hàm f là một dãy 32 bit, và các bước xử lý của hàm f (A, J) được thực hiện theo quy trình nhất định.

Tham số A (32 bit) được mở rộng thành dãy 48 bit thông qua quá trình hoán vị theo một thứ tự cố định 32 bit, trong đó 26 bit của A được lặp lại hai lần trong E(A).

Quy trình phát sinh dãy Li Ri từ dãy Li-1 Ri-1 và khóa Ki

Thực hiện phép toán XOR cho hai dãy 48 bit E(A) và J, ta thu được một dãy 48 bit B Biểu diễn B thành từng nhóm 6 bit như sau: B=B1 B2 B3 B4

Sử dụng 8 ma trận S1 đến S8, mỗi ma trận có kích thước 4x16, với mỗi dòng chứa đủ 16 giá trị từ 0 đến 15 Để xác định dãy 6 bit Bj = b1 b2 b3 b4 b5 b6, ta lấy giá trị phần tử tại dòng r và cột c của ma trận Sj, trong đó chỉ số dòng r được biểu diễn nhị phân bởi b1 b6 và chỉ số cột c bởi b2 b3 b4 b5 Qua đó, ta có thể xác định các dãy 4 bit Cj = Sj(Bj) cho 1 ≤ j ≤ 8.

Tập hợp các dãy 4 bit Cj lại, ta có được dãy 32 bit C= C1 C 2 C3 C4 C5 C6

C7 C8 Dãy 32 bit thu được bằng cách hoán vị C theo một quy luật P nhất định chính là kết quả của hàm F(A,J).

Quá trình giải mã diễn ra tương tự nhưng với các khóa con ứng dụng vào các vòng theo thứ tự ngược lại

Trong mỗi vòng của thuật toán, phần bên phải sẽ thực hiện một phép toán thay thế dựa trên khóa, áp dụng cho từng ký tự trong chuỗi 48 bit, sau khi mở rộng input 32 bit thành 8 ký tự 6 bit.

Li Ri f Ki dụng một phép chuyển bit cố định để phân bố lại các bit của các ký tự kết quả hình thành nên output 32 bit.

Các khóa con Ki (chứa 48 bit của K) được tính bằng cách sử dụng các bảng PC 1 và PC 2 (Permutation Choice 1 và 2) Trước tiên 8 bit ( K8, K16, …,

Trong quy trình của K64, phần K bị loại bỏ (theo PC 1), 56 bit còn lại sẽ được hoán vị và chia thành hai biến 28 bit là C và D Các biến này sẽ được quay 1 hoặc 2 bit, từ đó tạo ra các khóa con 48 bit Ki được chọn từ kết quả của việc ghép hai xâu lại với nhau.

Như vậy, ta có thể mô tả toàn bộ thuật toán sinh mã DES dưới dạng công thức như sau:

- T mô tả phép hoán vị của các khối Li, RI (1  i  15).

- fi mô tả việc dùng hàm f với khóa Ki (1  i 16)

- 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ỏ

1.3.3.2 Các yếu điểm của DES a) Tính bù

Nếu ta ký hiệu u là phần bù của u (ví dụ : 0100101 là phần bù của 1011010) thì des có tính chất sau: y = DES (x, k)  y = DES ( x , k )

Cho nên nếu ta biết mã y được mã hóa từ thông tin x với khóa K thì ta suy được bản mã y được mã hóa từ bản rõ x với khóa k

Tính chất yếu của DES cho phép đối phương loại bỏ một số khóa cần thử trong quá trình giải mã vét cạn, dẫn đến việc dễ dàng hơn trong việc phá mã Điều này nhấn mạnh sự tồn tại của các khóa yếu trong hệ thống.

Khóa yếu là các khóa mà theo thuật toán sinh khóa con thì tất cả

16 khóa con đều như nhau : K1=K2= =K16 Điều đó khiến cho việc mã hóa và giải mã đối với khóa yếu là giống hệt nhau

Bảng 1.1: Các khóa yếu của DES

Có 6 cặp khóa nửa yếu (semi-weak key) trong hệ thống mã hóa DES, được định nghĩa bởi các thuộc tính y = DES(x, k1) và y = DES(x, k2) Điều này có nghĩa là với hai khóa khác nhau, nhưng chúng vẫn mã hóa cùng một bản mã từ một bản rõ giống nhau.

Bảng 1.2: Các khóa nửa yếu của DES

01FE 01FE 01FE 01FE 1FE0 1FE0 1FE0 1FE0 01E0 01E0 01F1 01F1 1FFE 1FFE 0EFE 0EFE 011F 011F 010E 010E E0FE E0FE F1FE F1FE

{10} 14 {01} 14 {0} 28 {1} 28 {10} 14 {10} 14 c) DES có cấu trúc đại số

Với 64 bit khối bản rõ có thể được ánh xạ lên tất cả các vị trí của khối 64 bit khối bản mã trong 2 64 cách Trong thuật toán DES, với 56 bit khóa có thể cho chúng ta 2 56 (khoảng 10 17 ) vị trí ánh xạ Với việc đa mã hóa thì không gian ánh xạ còn lớn hơn Tuy nhiên điều này chỉ đúng nếu việc mã hóa DES là không cấu trúc

1.3.4 Sơ đồ khối Ảnh 1.4: Sơ đồ khối chương trình DES Ảnh 1.5: Sơ đồ khối quá trình sinh khóa

DES là một thuật toán mã hóa khối, xử lý thông tin theo từng khối 64 bit Trước khi thực hiện 16 chu trình chính, dữ liệu cần bảo mật được chia thành các khối 64 bit, và mỗi khối này sẽ được đưa vào 16 vòng mã hóa để đảm bảo an toàn thông tin.

Input: bản rõ M = m1m2 … m64, là một khối 64 bit, khóa 64 bit K = k1k2

k64 (bao gồm cả 8 bit chẵn lẻ, việc thêm bit chẵn lẻ sao cho các đoạn khóa

8 bit có số bit 1 là lẻ).

1 Sinh khóa con Tính các khóa con theo thuật toán sinh khóa con.

2 (L0,R0)  IP (m1 m2 m64) (sử dụng bản hoán vị IP để hoán vị các bit, kết quả nhận được chia thành 2 nửa là L0 = m58 m50 m8, R0 = m57 m49 m7).

3 Với i chạy từ i=1 đến 16 thực hiện:

Tính các Li và Ri theo công thức:

Ri=Li-1  f(Ri-1) trong đó f (Ri-1, Ki) = P (S (E (Ri-1)  Ki ));

Việc tính f ( Ri-1 ) = P ( S ( E ( Ri-1 )  Ki ) ) được thực hiện như sau:

 Mở rộng Ri-1 = r1r2 r32 từ 32 bit thành 48 bit bằng cách sử dụng hoán vị mở rộng E

 T’  T  Ki Biểu diễn T’ như là các xâu gồm 8 ký tự 6 bit T’ = ( B1, , B8 )

T’’  (S1 (B1), S2 (B2), , S8 (B8)) là quá trình ánh xạ các bit b1, b2, …, b6 thành các chuỗi 4 bit từ các bảng S box Trong đó, chỉ số hàng r được tính bằng công thức r = 2 * b1 + b6, và chỉ số cột c được xác định từ các bit b2, b3, b4, b5, tạo thành một số nhị phân từ 0 đến 15.

15 Chẳng hạn S1 (011011) sẽ cho r = 1 và c = 3 và kết quả là 5 biểu diễn dưới dạng nhị phân là 0101.

 T’’’  P (T’’) trong đó P là hoán vị cố định để hoán vị 32 bit của T’’ = t1 t2 t32 sinh ra t16 t7 …t25

4 Khối từ b1 b2 b64  (R16, L16) (đổi vị trí các khối cuối cùng L16, R16)

C  IP -1 (b1 b2 b64) (Biến đổi sử dụng IP -1 , C = b40 b8 b25). Ảnh 1.6: Sơ đồ mã hóa DES

1.3.5.1 Quá trình mã hóa Ảnh 1.7: Sơ đồ một vòng DES

Với bản rõ cho trước x, 1 xâu x' sẽ được tạo ra bằng cách hoán vị các bit của x theo hoán vị ban đầu IP: x'=IP(x)=L0 R0

Tính toán 16 lần lập theo 1 hàm xác định Ta sẽ tính LiRi (1≤ i ≤

Với:  là toán tử Xor, k1,k2,k3 k16 là xâu bit độ dài 48 bit được tính qua hàm khoá K (thực tế thì Ki là 1 phép hoán vị bit trong K)

Giai đoạn 3: Áp dụng hoán vị ngược IP -1 cho xâu bit R16 L16 ta thu được bản mã y: y = IP -1 (R16 L16) + Chú ý vị trí của R16 và L16.

Hoán vị nghịc đảo IP -1

1.3.5.2 Quá trình giải mã

Do là 1 thuật toán đối xứng nên quá trình giải mã và mã hóa cũng gần giống nhau chỉ khác ở:

Ri = Li-1 f (Ri-1, K16-i) Khóa K của hàm F sẽ đi từ 16 ->0

Lập mã DES

Ví dụ về việc sử dụng DES là mã hóa bản rõ "0123456789ABCDEF" bằ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 IP , ta nhận được L 0 và R 0 L0 và R0 (trong dạng nhị phân)

16 vòng lặp mã được thể hiện như sau:

Cuối cùng, áp dụng IP -1 cho R 16 L 16 ta nhận được bản mã trong dạng thập lục phân như sau : 85E813540F0AB405.

KẾT QUẢ NGHIÊN CỨU

Kỹ thuật Chia sẻ khóa bí mật (Secret Sharing)

2.1.1 Khái niệm về chia sẻ bí mật

Sơ đồ chia sẻ bí mật là một khía cạnh quan trọng trong an toàn bảo mật thông tin, hứa hẹn nhiều ứng dụng đa dạng như 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 là phương pháp phân chia một bí mật thành nhiều phần riêng biệt, sau đó phân phối cho những người tham gia được chỉ định Chỉ những người này mới có khả năng khôi phục bí mật bằng cách kết hợp các phần thông tin mà họ nắm giữ, trong khi những người không được chỉ định sẽ không nhận được bất kỳ thông tin nào Ý tưởng chính là bảo vệ thông tin quan trọng bằng cách không để một người duy nhất nắm giữ, mà thay vào đó chia nhỏ thông tin và phân phát cho nhiều người Thông tin gốc chỉ có thể được khôi phục khi tất cả những người giữ các mảnh thông tin đều đồng ý và kết hợp chúng lại.

- 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 đượ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 cần để ghép lại thông tin Thông tin bí mật được khôi phục

Yêu cầu: để thực hiện công việc trên, 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 đề cập đến việc sử dụng sơ đồ chia sẻ bí mật để phân phối thông tin cho m thành viên Chỉ những tập con hợp lệ của các thành viên mới có khả năng khôi phục thông tin bí mật, trong khi những thành viên khác không thể thực hiện được điều này.

- 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.

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.

Chìa khóa để mở két bạc được chia thành 3 mảnh khóa, mỗi mảnh do một thủ quỹ P1, P2, P3 giữ Chỉ khi hai trong ba thủ quỹ kết hợp mảnh khóa của họ, như P1 và P2, P2 và P3, hoặc P1 và P3, thì họ mới có thể nhận được chìa khóa gốc để mở két bạc Các tập con hợp thức để mở khóa bao gồm: {P1, P2}, {P2, P3}, và {P1, P3}.

2.1.2 Các sơ đồ chia sẻ bí mật

2.1.2.1 Sơ đồ chia sẻ bí mật sơ khai

Sơ đồ chia sẻ bí mật bảo đảm tính bảo mật cho phép người dùng không có đủ t phần dữ liệu để khôi phục bí mật mà không có thông tin bổ sung Điều này có nghĩa là bất kỳ ai sở hữu ít hơn t phần dữ liệu sẽ không có nhiều thông tin hơn một người hoàn toàn không có dữ liệu.

Xem xét sơ đồ chia sẻ bí mật sơ khai trong đó cụm từ bí mật

“password” được chia thành các phần “pa _”, “_ss _”, “ _wo_” và

Một người không sở hữu một trong bốn phần bí mật sẽ chỉ biết mật khẩu gồm 8 chữ cái, và họ phải đối mặt với 208 tỷ khả năng để đoán đúng Nếu họ có một phần trong số bốn phần đó, họ sẽ cần đoán 6 chữ cái, tương đương với 308 tỷ khả năng Hệ thống này không đảm bảo an toàn vì một người tham gia có ít hơn một phần dữ liệu vẫn có thể thu thập thông tin đáng kể về bí mật Trong một sơ đồ chia sẻ bí mật an toàn, ngay cả khi thiếu một phần dữ liệu, người tham gia vẫn phải đối mặt với 208 tỷ khả năng để đoán đúng mật khẩu.

2.1.2.2 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: Hai đ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.

Cho t và m là các số nguyên dương với t ≤ m, sơ đồ ngưỡng A(t, m) là phương pháp phân chia khóa K cho tập w thành viên (ký hiệu là P) Trong sơ đồ này, bất kỳ t thành viên nào cũng có khả năng tính toán được khóa K, trong khi đó, không có nhóm nào gồm (t-1) thành viên có thể thực hiện điều đó.

Trong ví dụ này, với m = 3 thủ quỹ giữ két bạc, chúng ta cần xây dựng một hệ thống cho phép bất kỳ t = 2 thủ quỹ nào cũng có thể mở được két bạc, trong khi từng thủ quỹ riêng lẻ không thể thực hiện điều này Hệ thống này được gọi là sơ đồ ngưỡng A(2,3).

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 từng thành viên trong P bằng cách cung cấp cho mỗi người một thông tin cục bộ gọi là mảnh Những mảnh này được phân phát một cách bí mật, đảm bảo rằng không ai trong số các thành viên biết được mảnh của người khác.

Một tập con B ⊆ P sẽ kết hợp các mảnh của họ để tính toán khóa K, hoặc có thể ủy quyền cho một người đáng tin cậy để thực hiện việc này.

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

1 D chọn m phần tử x i khác nhau, ≠ 0 trong Zp, 1 ≤i ≤m (yêu cầu: m < p , Tl: x i khác nhau, ≠ 0 trong Zp) D trao x i cho thành viên P i Giá trị x i là công khai.

2 D chọn bí mật (ngẫu nhiên, độc lập) (t – 1) phần tử Zp là a 1 , …, a t – 1.

4 Với 1 ≤ i ≤ m, D sẽ trao mảnh y i cho P i

 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, 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 i j = P(x i j ), 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.

2.1.2.3 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:

(1) B chọn một số nguyên tố P đủ lớn sao cho: n ≤ √ p với S ∈ Z p :

(2) B tiếp theo chọn (2n – 1) số một cách ngẫu nhiên: a 1 , a 2 , … , a n−1 v 1 , v 2 , , v n

(3) B xác định một đa thức với các hệ số a 1 , …, a t-1 trên Z p : f ( v )=a n−1 v n−1 + a n−2 v n−2 + …+a 1 v + S ( mod p) với v= v 1 , v 2 , , v n

(4) Bây giờ B gửi Aj (một cách công khai) cặp ( v j , f ( v j )) với j=1, 2, , n coi như mảnh riêng của Aj.

Tất cả n 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:

1≤ i≤ n ,i ≠ j ( v j −v i ) −1 ( x−v i ) mod p 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)

Thật vậy, dễ thấy rằng g(x) là hàm nội suy Lagrange của hàm f(x) là một đa thức có cấp bé hơn n và g thỏa mãn điều kiện:g(vj)=f(vj) với 0 ≤ j < n.

Đa thức f - g trên Zp có cấp nhỏ hơn n nhưng lại có ít nhất n nghiệm khác nhau, tức là các số r thỏa mãn f(r) - g(r) = 0 Điều này chứng tỏ rằng f(a) = g(a) với mọi a ∈ Zp, đặc biệt là f(0) = g(0) = S.

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 ( v j )=a 2 v 2 j +a 1 v j +S mod p Áp dụng công thức trên ta có: f ( v 1) 24 ⇒ A 1 có cặp ( v 1 , f ( v 1))=(626, 1724) f ( v 2 )25 ⇒ A 2 có cặp ( v 2 , f ( v 2 ))=(674, 1925) f ( v 3) 41 ⇒ A 3 có cặp ( v 3 , f ( v 3))=(93, 1241)

Ta lấy 3 cặp ( v j , f ( v j )) hợp lại sẽ xác định được S:

1 ≤i ≤3, i≠ j ( v i − v j ) −1 ( v i ) mod p Áp dụng công thức ta được: b0 = 1847 b1 = 793 b2 = 1359

Cho số nguyên tố p42853815608923 (Đây là 1 số nguyên tố được lấy trong bảng các số nguyên tố từ cuốn “The Art of Programing” của Knut(Vol 2).

Giải sử bí mật là S = 151595058245452

Tính f ( v j )=a 2 v 2 j +a 1 v j +S mod p Áp dụng công thức trên ta có: f ( v 1)9351520587519 f ( v 2)4675701531216 f ( v 3)7471713218253

Ta lấy 3 cặp ( v j , f ( v j )) hợp lại sẽ xác định được S:

1 ≤i ≤3, i≠ j ( v i − v j ) −1 ( v i ) mod p Áp dụng công thức ta được: b1 = 266921901220910 b2 = 129147516050688 b3 = 289638215946249

2.1.2.4 Ứng dụng lược đồ chia sẻ bí mật của Lagrange để phân phối khóa

Để bảo vệ thông tin khi gửi, người gửi thường sử dụng các phương pháp mã hóa, được phân loại thành Hệ mật mã khóa bí mật và Hệ mật mã khóa công khai Trong cả hai hệ thống này, việc giữ bí mật khóa mã hóa là vô cùng quan trọng Khác với Hệ mã khóa công khai, cho phép chia sẻ khóa công khai giữa bên gửi và nhận, Hệ mã khóa bí mật yêu cầu bảo mật nghiêm ngặt khóa mã hóa, vì nó quyết định toàn bộ quá trình mã hóa và giải mã.

Để người gửi chia sẻ khóa mã hóa của hệ mã khóa bí mật với người nhận, cần thực hiện một quy trình an toàn nhằm đảm bảo rằng chỉ người nhận mới có thể giải mã và đọc thông tin đã được gửi Việc sử dụng các phương pháp bảo mật như mã hóa khóa công khai hoặc giao thức trao đổi khóa an toàn sẽ giúp bảo vệ khóa mã hóa trong quá trình truyền tải.

Chúng ta sẽ áp dụng lược đồ chia sẻ bí mật để phân chia khóa thành nhiều mảnh, giúp truyền tải an toàn qua các nút không đáng tin cậy Khi nhận được các mảnh khóa, người dùng sẽ ghép lại thành khóa hoàn chỉnh để giải mã thông tin Do mỗi mảnh khóa không thể suy ra khóa gốc, phương pháp này đảm bảo tính bảo mật trong việc chia sẻ khóa, đặc biệt trong hệ mã DES.

Áp dụng thuật toán DES và lược đồ chia sẻ bí mật vào thi tuyển sinh

Thuật toán mã hóa DES và sơ đồ chia sẻ bí mật được ứng dụng rộng rãi trong nhiều lĩnh vực nhằm bảo vệ thông tin trong quá trình trao đổi Bài viết này tập trung vào việc ứng dụng những công nghệ này trong việc chuyển đề thi tuyển sinh, đảm bảo giữ bí mật cho đề thi trước thời điểm phát cho thí sinh.

Trong một kỳ thi, việc chuyển đề thi từ nơi ra đề đến nơi tổ chức thi qua mạng máy tính cần đảm bảo tính bảo mật Để giải quyết bài toán này, cần áp dụng các biện pháp bảo mật hiệu quả nhằm ngăn chặn rò rỉ thông tin và bảo vệ quyền lợi của thí sinh.

Bảo mật đề thi là yếu tố quan trọng hàng đầu, nhằm đảm bảo rằng đề thi được giao cho nơi tổ chức thi đúng thời gian mà không bị lộ trước giờ phát đề Để đạt được điều này, cần tiến hành mã hóa đề thi bằng thuật toán DES với khóa mã hóa K, sau đó chuyển đề thi đã mã hóa đến nơi tổ chức thi.

Để bảo mật khóa mã hóa, sử dụng sơ đồ chia sẻ bí mật để chia khóa K thành hai khóa k1 và k2 Hai khóa này sẽ được gửi lần lượt đến nơi tổ chức, nơi sẽ ghép lại k1 và k2 để tái tạo khóa K, từ đó tiến hành giải mã đề thi và nhận được bản rõ ban đầu.

2.2.2 Quy trình thực hiện giải bài toán

Khóa DES có độ dài 56 bit, tương đương với một số nguyên 20 chữ số thập phân, điều này khiến cho việc chia sẻ bí mật trở nên hiệu quả Lược đồ chia sẻ bí mật của Lagrange đã được áp dụng để phân phối khóa, như đã được mô tả trong chương trước Ảnh 2.2 minh họa quy trình bảo mật đề thi từ nơi ra đề đến nơi tổ chức thi.

Theo sơ đồ trên ta phải thực hiện theo các bước sau:

+ Nhận bản mã và cặp (vj, f(vj)).

+ Giải bản mã (sau khi nhận đủ các cặp khác từ người ra đề thi để xác định được khóa K)

Bộ giáo dục sử dụng bảng mã ASCII mở rộng để chuyển đổi bản rõ của đề thi từ dạng ký tự sang hệ thập lục phân (Hexa), sau đó áp dụng thuật toán mã hóa DES để bảo vệ thông tin.

Tạo khóa k: Dùng dãy kí tự dạng chữ hoặc dạng số, nhóm 8 kí tự thành 1 nhóm sau đó dùng 56 bit để mã hóa

Gửi bản tin: Chia sẻ bí mật bằng cách phân chia khóa k thành hai phần k1 và k2, với k1 + k2 = k Gửi phần k1 cho n thực thể (các địa chỉ thi) và quy định đúng giờ G, vụ Đào tạo sẽ gửi phần k2 cho các thực thể đó dựa trên k1 và k2 Tất cả các địa điểm đều có thể mở đề và trao cho học sinh hoặc gửi cho học sinh qua máy tính để làm (qua email đồng thời).

Ví dụ: Tại nơi ra đề dùng khóa mã hóa là khóa K(64 bit) ABCDEF0123456789HEX = 12379813738877118345DEC, lấy số nguyên tố p = 12764787846358441471.

(Theo https://primes.utm.edu/lists/small/small.html).

Sau khi mã hóa đề thi bằng thuật toán DES với khóa K, nơi ra đề sẽ chia khóa thành hai phần: v1 = 151595058245452 và v2 = 111350135012507, cùng với a1 = 207244959855905.

Tính f ( v j ) =a 1 v j + S mod p Áp dụng công thức trên ta có: f ( v 1) = a 1 v 1 + K mod p576322953334095184 ⇒ k 1 là cặp ( v 1 , f ( v 1)) f ( v 2) = a 1 v 2 + K mod p31512647268863473⇒ k 2 là cặp ( v 2 , f ( v 2 ))

Sau đó cùng gửi đề thi đã mã hóa và k 1 cho các địa chỉ thi Đến đúng giờ G vụ Đào tạo sẽ gửi nốt k 2 cho các điểm thi.

Từ 2 cặp ( v j , f ( v j )) hợp lại sẽ xác định được K:

1 ≤i ≤2, i≠ j ( v i − v j ) − 1 ( v i ) mod p Áp dụng công thức ta được: b 1 =( v 2 − v 1 ) −1 ( v 2) mod p658693592867016127 b 2 =( v 1 − v 2 ) −1 ( v 2) mod p= 2106094253491425345

Từ đó ta tính được:

Khi đã có K, tai địa điểm thi sẽ có thể giải mã để mở được đề thi và tiến hành thi.

Thuật toán DES kết hợp với lược đồ chia sẻ bí mật đảm bảo an toàn thông tin và ngăn chặn lộ đề thi, đồng thời duy trì tính minh bạch trong kỳ thi Đây là một ứng dụng thực tiễn có hiệu quả cao.

Chương trình gồm các chức năng sau:

 Mã hóa File (Word – đề thi)

 Chia sẻ khóa bí mật của DES

 Khôi phục khóa bí mật

Kết quả cài đặt: Ảnh 2.3: Chương trình mình họa bằng java

 Ngôn ngữ cài đặt: Java

 Môi trường cài đặt: Apache NetBean IDE 14

Java.io.IOException : Bắt lỗi dữ liệu nhập vào;

Java.nio.file : Đọc dữ liệu từ file;

Java.util : Lưu trữ dữ liệu mảng;

- Mã hóa và giải mã

+ Người sử dụng nhập hay chọn các thông tin (file) cần mã hóa vào ô input, đường link tới file sẽ hiển thị tại ô Files.

Người dùng có thể chọn chức năng mã hóa hoặc giải mã Nếu đầu vào là file cần mã hóa, hệ thống sẽ chuyển đổi thành chuỗi nhị phân Ngược lại, nếu file cần giải mã, kết quả sẽ được hiển thị dưới dạng đoạn text tại ô output.

Nếu người dùng không nhập đúng khóa hoặc không nhập khóa, chương trình sẽ thông báo yêu cầu nhập khóa Ngược lại, nếu khóa hợp lệ, chương trình sẽ tiến hành mã hóa file và thông báo rằng quá trình mã hóa đã thành công.

+ Người dùng cần nhập đầy đủ các thông tin, các giá trị cần thiết cho việc chia sẻ khóa bí mật.

+ Người dùng nhập vào khóa, số mảnh khóa được chia, số người tối thiểu để mở khóa và số P là số nguyên tố thỏa mã p > k.

Tên sinh viên Tên công việc Ngôn Ngữ

Phân tích bài toán ứng dụng mật mã DES và chia sẻ khóa ứng dụng thi tuyển sinh

Java Đặng Thành An Tìm hiểu về mã hóa và giải mã DES PHP Dương Dĩ An Tìm hiểu Kỹ thuật chia sẻ khóa bí mật

Nguyễn Tuấn Anh Tìm hiểu về chuẩn mã hóa DES và ưu nhược điểm

Tìm hiểu tổng quan về an toàn và bảo mật thông tin

Ngày đăng: 21/09/2022, 11:43

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Các khóa yếu của DES - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng 1.1 Các khóa yếu của DES (Trang 15)
01FE 01FE 01FE 01FE 1FE0  1FE0  1FE0    1FE0 - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
01 FE 01FE 01FE 01FE 1FE0 1FE0 1FE0 1FE0 (Trang 16)
Bảng 1.2: Các khóa nửa yếu của DES - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng 1.2 Các khóa nửa yếu của DES (Trang 16)
Bảng 1.3: Hoán vị IP - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng 1.3 Hoán vị IP (Trang 23)
Bảng trật tự khóa PC-1: - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng tr ật tự khóa PC-1: (Trang 26)
Bảng 1.8: Hàm mở rộn gE - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng 1.8 Hàm mở rộn gE (Trang 29)
Bảng 3.8: Ước tính kết quả tác động ngân sách theo năm (đơn vị: đồng) - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Bảng 3.8 Ước tính kết quả tác động ngân sách theo năm (đơn vị: đồng) (Trang 49)
Hình 3.6: Biểu đồ Tornado (đơn vị: đồng) - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Hình 3.6 Biểu đồ Tornado (đơn vị: đồng) (Trang 50)
Hình 3.8: Biểu đồ biểu diễn tác động ngân sách ước tính theo năm trong bối cảnh 1 (đơn vị: đồng) - Báo cáo bài tập lớn môn an toàn và bảo mật thông tin
Hình 3.8 Biểu đồ biểu diễn tác động ngân sách ước tính theo năm trong bối cảnh 1 (đơn vị: đồng) (Trang 53)
w