Các bước thực hiện xây dựng hệ thống bảo mật

Một phần của tài liệu ỨNG DỤNG QUẢN LÝ ĐỀ THI DỰA TRÊN MÃ HÓA IBE TẠI TRƯỜNG ĐẠI HỌC VĂN HÓA DU LỊCH (Trang 54 - 57)

Để thực hiện ý tưởng mô tả trong phần trước, chúng ta phải xây dựng một chương trình mã khóa công khai với hai thuộc tính bổ sung:

(A) Khi seed k được biết đến, các khóa bí mật có thể dễ dàng được tính toán cho một phần nhỏ của khóa công khai.

(B) Các vấn đề của việc tính toán seed k từ các cặp khóa công khai – bí mật được tạo ra với k là không dễ dàng.

Chương trình FGA không thể được sử dụng thỏa mãn những điều kiện cùng lúc: (a) Nếu n là một hàm giả ngẫu nhiên dựa trên danh tính của người sử dụng thì ngay cả trung tâm khởi tạo mã cũng không thể phân tích số n này ra thừa số nguyên tố, đồng thời không thể tính được số mũ giải mã d từ số mũ mã hóa e.

(b) Nếu n là phổ biến và seed của nó là 1 thừa số bí mật, thì bất kì ai biết đọc số mũ mã hóa e và số mũ giải mã d tương ứng đều có thể tính toán ra giá trị của seed.

Ở giai đoạn này, chúng tôi đã đề xuất thực hiện cụ thể chỉ cho các chương trình chữ ký dựa trên cơ sở nhận dạng, tuy nhiên chúng tôi cũng ước đoán rằng có sự tồn tại của các hệ bảo mật dựa trên nhận dạng tồn tại và chúng tôi khuyến khích người đọc để tìm kiếm những hệ thống như vậy. Tình huống này gợi lại thời kỳ năm 1976, khi các hệ mật khóa công khai đã xác định thì các ứng dụng tiềm năng của chúng phải trải qua 50 cuộc điều tra cho dù việc triển khai cụ thể lần đầu tiên được công bố ngay trong năm 1978.

Đề án chữ ký dựa trên điều kiện xác minh: se = i.t f(tfm) (mod n) Trong đó : - m là thông điệp - s,t là chữ ký - i danh tính người sử dụng - n sản phẩm của 2 số nguyên tố lớn - e là số nguyên tố cùng nhau với ϕ(n) - f là hàm 1 chiều.

Các thông số n, e và hàm f được lựa chọn bởi các trung tâm tạo khóa, và tất cả những người sử dụng có cùng n,e và f thì đều được lưu trữ trong thẻ thông minh của họ. Những giá trị này có thể được thực hiện công khai, nhưng thừa số của n chỉ được

biết đến trung tâm tạo khóa. Sự khác biệt duy nhất giữa người sử dụng là giá trị của i, và khóa bí mật tương ứng với i là g sao cho:

ge = i (mod n).

G có thể dễ dàng được tính ra bởi trung tâm tạo mã, nhưng nếu chương trình RSA an toàn thì không ai có thể trích xuất nguồn gốc điện tử thứ mod n

Mỗi thông điệp m chứa rất nhiều cặp chữ ký (s, t), tuy nhiên mật độ phân bổ của chúng thấp đến nỗi mà phương thức tìm kiếm ngẫu nhiên hầu như không thể phát hiện ra bất kỳ chữ ký nào. Việc tính toán những biến khác dựa trên (s,t) cũng là bất khả thi, vì để làm được điều đó cần phải tính được góc mô-đun, bài toán đó đươc xem là vô cùng khó. Song, nếu phát hiện được g, có thể rất dễ dàng tạo ra chữ ký cho bất kì tin nào, kể cả khi không biết phân tích nguyên tố của n. Để ký 1 tin m, người dùng chọn 1 số ngẫu nhiên r và tính:

t = re (mod n).

Hoặc có thể viết lại như sau: Se = ge.ref(t,m) mod n

Vì e là số nguyên tố cùng nhau với ϕ(n), chúng ta có thể loại bỏ các yếu tố điện tử phổ biến từ các số mũ và do đó s có thể được tính mà không cần bất kỳ khai thác gốc nào.

s = g-r f(trm) (mod n)

Để ngăn chặn các cuộc tấn công dựa trên mối quan hệ tỉ lệ giữa các danh tính (giá trị g) của những người dùng khác nhau, chúng ta nên mở rộng chuỗi miêu tả danh tính của người dùng trở thành 1 chuỗi ngẫu nhiên giả thông qua 1 hàm 1 chiều chung, và sử dụng dạng mở rộng cho giá trị của i trong điều kiện xác thực. Bởi vì mọi người trong mạng lưới đều biết cách áp dụng hàm này, phương thức mã hóa vẫn giữ được đặc tính dựa trên danh tính của nó ngay cả khi khóa chữ ký xác minh chu kỳ không đúng bằng với danh tính người dùng.

Tính bảo mật của phương thức này phụ thuộc vào việc người giải mã không thể nào tìm ra g qua việc phân tích 1 lượng lớn những chu kì hợp lệ của tin nhắn của anh ta. Nếu ước số chung của f và e là c, chúng ta có thể tìm ra căn bâc c của i dựa trên việc dựng lên điều kiện xác thực, vì vậy một việc tối quan trọng là e phải là 1 số nguyên tố đủ lớn, và phải là 1 hàm 1 chiều đủ mạnh sao cho việc tìm ra c là không thể khi thực hành. Giá trị của r không bao giờ được sử dụng lại hay được tiết lộ, bởi vì g được bảo vệ trong mỗi chu kì dựa vào sự ngẫu nhiên và bí mật của nó.

Những biến thể của điều kiện xác thực mà 1 trong 2 sự xuất hiện của t bị xóa mất (như là bị thay thế bởi 1 hằng số) thì không bảo mật. Do đó, việc có tập giá trị lớn và sử dụng 1 hàm 1 chiều có thể trộn lẫn hoàn toàn t và m (cách tốt nhất là thông qua những phép toán không thể đảo nghịch hoặc không có quy luật) là điều vô cùng quan trọng. Chúng tôi tin rằng với cách chọn thông số hợp lý, phương thức này có thể trở nên an toàn, dù vậy cũng chưa thể chứng minh việc bẻ khóa hàm này giống như giải 1 bài toán khó. Mục tiêu chính của hàm này là để dẫn giải bước đầu, như minh chứng đầu tiên cho những phương thức dựa trên danh tính. Phương thức OSS signature cũng có thể sử dụng như 1 phương thức dựa trên danh tính, nhưng sự bảo của nó vẫn còn là 1 vấn đề mở, khi mà những phiên bản trước đã bị bẻ khóa thành công bởi Pollard. Do vậy, chúng tôi không khuyến khích dùng phương thức này ngay trực tiếp trước khi cộng đồng bảo mật chứng minh được tính bảo mật của nó.

Một phần của tài liệu ỨNG DỤNG QUẢN LÝ ĐỀ THI DỰA TRÊN MÃ HÓA IBE TẠI TRƯỜNG ĐẠI HỌC VĂN HÓA DU LỊCH (Trang 54 - 57)