Mô tả
Bài toán ứng dụng
Thuật toán mã hóa DES và sơ đồ chia sẻ bí mật được ứng dụng rất nhiều trong nhiều lĩnh vực khác nhau để đảm bảo an toàn thông tin khi trao đổi thông tin. Trong phần này ta nghiên cứu một ứng dụng trong việc chuyển đề thi tuyển sinh làm sao để giữ bí mật trước giờ phát đề cho thí sinh.
- Bài toán:
Trong một kỳ thi, nơi ra đề thi và nơi tổ chức thi ở cách xa nhau, ta phải thực hiện việc chuyển đề thi từ nơi ra đề tới nơi tổ chức trên mạng máy tính sao cho đảm bảo về tính bảo mật.
- Ý tưởng giải quyết bài toán:
Việc bảo mật đề thi là rất quan trọng, làm sao để vừa giao đề thi cho nơi tổ chức thi kịp thời mã vẫn không bị lộ đề thi trước giờ phát đề?
Để làm như vậy ta cần mã hóa đề thi (ở đây ta dùng thuật toán mã hóa DES với khóa mã hóa K) sau đó chuyển đề thi đã được mã hóa cho nơi tổ chức thi.
Về việc bảo mật khóa mã hóa: Dùng sơ đồ chia sẻ bí mật chia khóa K thành 2 khóa k1 và k2. Sau đó lần lượt gửi k1 và k2 cho nơi tổ chức. Nơi tổ chức sẽ dùng k1 và k2 để ghép lại khóa K sau đó tiến hành giải mã đề thi để được bản rõ ban đầu.
Quy trình thực hiện giải bài toán
Khóa DES gồm 56 bit, tương đương với một số nguyên gồm 20 chữ số thập phân. Con số bí mật nay không quá lớn đối với bài toán chia sẻ bí mật. Cho nên việc tính toán là rất hiệu quả.
Ứng dụng lược đồ chia sẻ bí mật của Lagrange để phân phối khóa đã được mô tả ở chương trước.
Các bước thực hiện
Bản rõ (đề thi)
Mã hóa bản rõ
Tạo khóa k
Mã hóa khóa k
Gửi bản mã
Nơi tổ chức thi:
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).
Mã hóa bản rõ (đề thi): Bộ giáo dục dùng bảng mã ASCII mở rộng để chuyển bản rõ từ dạng kí tự sang Hexa sau đó dùng thuật toán DES để mã hóa.
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: Dựa vào lược đồ chia sẻ bí mật chia khóa k thành 2 mảnh rời nhau k1, k2 : k1 + k2 = k. Sau đó gửi k1 cho n thực thể (các địa chỉ thi). Quy định đến đúng giờ G vụ Đào tạo gửi nốt k2 cho n thực thể đó trên cơ sở k1, k2. Tất cả các nơi đều mở được đề và trao cho học sinh hoặc gửi cho học sinh thông qua máy tính để làm (qua mail đồ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 dùng khóa K để mã hóa đề thi bằng thuật toán DES, Nơi ra đề sẽ thực hiện chia chìa khóa thành 2 phần (n=2) với:
v1 = 151595058245452 (tùy chọn)
v2 = 111350135012507 (tùy chọn)
a1 = 207244959855905 (tùy chọn)
- Quá trình tách khóa:
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 p=11576322953334095184⇒k_1 là cặp (v_1,f(v_1 ))
f(v_2 )=a_1 v_2+K mod p=1331512647268863473⇒ k_2 là cặp (v_2,f(v_2 ))
Sau đó cùng gửi đề thi đã mã hóa và k1 cho các địa chỉ thi. Đến đúng giờ G vụ Đào tạo sẽ gửi nốt k2 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:
K=g(0)=∑_(1≤j≤2) f(v_j ) b_j mod p với b_j=∏_(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 p=10658693592867016127
b_2=(v_1-v_2 )^(-1) (v_2 ) mod p=2106094253491425345
Từ đó ta tính được:
K=g(0)=f(v_1 ) 〖*b〗_1+f(v_2 ) 〖*b〗_2 mod p=12379813738877118345
=> K = ABCDEF0123456789(HEX)
Khi đã có K, tai địa điểm thi sẽ có thể giải mã để mở được đề thi và tiến hành thi.
Như vậy, với thật toán DES và lược đồ chia sẻ bí mật có thể đảm bảo an toàn thông tin, không bị lộ đề thi, đảm bảo tính minh bạch của kỳ thi. Đây là một ứng dụng có hiệu quả cao trong thực tiễn.