Chƣơng 2 : XÁC THỰC VÀ BẢO ĐẢM TOÀN VẸN DỮ LIỆU DỰA TRÊN CHỮ KÝ SỐ
2.2 Chữ kí số
2.2.3.2 Phân loại sơ đồ chữ kí số
Theo đặc trưng kiểm tra chữ kí, có hai loại sơ đồ kí của chữ kí số là sơ đồ chữ kí số với phần phụ đính kèm và sơ đồ chữ kí số khôi phục thông báo.
Hình 2.1 minh hoạ sự phân loại các sơ đồ chữ kí số. Có thể phân nhỏ hai sơ đồ chữ kí này thành sơ đồ chữ kí ngẫu nhiên (dùng một lần) và sơ đồ chữ kí xác định (có thể dùng nhiều lần). Sơ đồ chữ kí khôi phục thông báo Ngẫu nhiên Xác định
Hình 2.1: Phân loại sơ đồ chữ kí số.
a. Sơ đồ chữ kí số với phần phụ đính kèm (with appendix)
Đây là loại sơ đồ được dùng nhiều trong thực tế. Nó thường dựa trên các hàm băm mã hoá nên khả năng tấn công với chữ kí hay khả năng giả mạo chữ kí là rất khó.
Định nghĩa
Sơ đồ chữ kí số với phần phụ đính kèm là sơ đồ chữ kí sử dụng dữ liệu hay tài liệu được kí làm dữ liệu đầu vào của thuật toán xác minh.
Các sơ đồ chữ kí DSA, ElGamal, Schnorr thuộc loại sơ đồ chữ kí với phần phụ đính kèm.
Thuật toán sinh khoá đối với sơ đồ chữ kí số với phần phụ đính kèm
Giả sử một người dùng A có 1 tập các tài liệu cần kí là M, tập các chữ kí mà người A sử dụng để kí các tài liệu thuộc M là S, K là tập chỉ số của các phép biến đổi kí. Thuật toán sinh khoá để kí tài liệu theo sơ đồ chữ kí số với phần phụ đính kèm như sau:
1. A chọn khoá bí mật từ tập SA = {SA,k : kK}. Mỗi phép biến đổi kí SA,k là một ánh xạ tương ứng 1-1 từ Mh S.
2. SA xác định một ánh xạ tương ứng VA từ Mh x S {true,false}, đó là: VA (m~, s*) = True nếu SA,k (m~) = s*
False nếu SA,k (m~) s* Với m~Mh, s*S, m~ =h(m) với mM.
VA được gọi là phép biến đổi xác minh và có thể thực hiện được mà không cần biết khoá bí mật của người kí.
3. Tập các khoá công khai của A là VA. Tập các khoá bí mật của A là tập SA.
Thuật toán kí và xác minh
A tạo một chữ kí sS cho thông báo mM, có thể xác minh bởi bất cứ người dùng B nào có khoá công khai VA của A
(a)- Chọn một số kK.
(b)- Tính m~ = h(m) và s* = SA,k (m~).
(c)- Chữ kí của A trên m là s*. Cả m và s* được dùng để xác minh chữ kí.
b- Thuật toán xác minh: B làm như sau: (a)-Lấy khoá công khai VA
(b)-Tính m~ = h(m) và u = VA (m~,s*).
(c)- Chữ kí và tài liệu được chấp nhận nếu u = True. Hình 2.2 dưới đây minh hoạ cho các phép toán kí và phép toán xác minh:
(i)-Với mỗi kK, có thể tính SA,k, VA
(ii)-Ngoài A không ai có thể tìm được mM và s*S sao cho VA (m~,s*) = True với m~=h(m).
(a)- Quá trình kí
(b)- Quá trình xác minh
Hình 2.2 : Mô hình về sơ đồ chữ kí số với phần phụ đính kèm.
Sử dụng hàm băm
Hầu hết các sơ đồ chữ kí khôi phục thông báo thường áp dụng cho các tài liệu có độ dài cố định trong khi sơ đồ chữ kí số với phần phụ đính kèm được dùng cho các tài liệu có độ dài tuỳ ý. Hàm một chiều h trong thuật toán trên được chọn là hàm “băm” không va chạm. Có thể thay thế phép “băm” bằng cách chia thông báo thành các khối có độ dài cố định để kí riêng trên mỗi khối với sơ đồ chữ kí khôi phục thông báo. Trong trường hợp này, thuật toán kí tương đối chậm và không đảm bảo sự toàn vẹn của dữ liệu được kí khi có sự sắp xếp lại các khối đã kí và các phần của chữ kí. Vì vậy, cách này không an toàn bằng phương pháp sử dụng hàm băm. M m m Mh m~ S h SA,k s*= SA,k(m~) Mh x S (m, s*) VA V A true false
b. Sơ đồ chữ kí khôi phục thông báo
Sơ đồ chữ kí này có chức năng khôi phục thông báo đã kí từ chính chữ kí của nó. Trong thực tế, loại sơ đồ này thường dùng cho các thông báo ngắn.
Định nghĩa:
Sơ đồ chữ kí khôi phục thông báo là sơ đồ chữ kí không cần sử dụng thông tin ban đầu cho thuật toán xác minh.
Các ví dụ cho sơ đồ chữ kí này là các sơ đồ chữ kí RSA, Nyberg- Rueppel, Rabin…
Thuật toán tạo khoá của sơ đồ chữ kí khôi phục thông báo
(1)-Một người dùng A chọn tập các phép biến đổi: SA={SA,k: kK}. SA,k là một ánh xạ 1-1 từ Ms S => được gọi là phép biến đổi kí.
(2)- Từ SA định nghĩa ánh xạ tương ứng VA sao cho VA°SA,k là ánh xạ đồng nhất trên Ms với kK. VA gọi là phép biến đổi xác minh và được tạo sao cho việc tính toán không cần biết khoá bí mật của người kí.
(3)- Tập các khoá công khai của A là VA và tập các khoá bí mật là tập SA.
Thuật toán kí và thuật toán xác minh
A tạo chữ kí sS trên thông báo mM còn B sẽ xác minh chữ kí này và khôi phục được thông báo m từ s.
Hình 2.3 Cho một cái nhìn khái quát về sơ đồ chữ kí khôi phục thông báo. 1- Thuật toán kí:
(a)-Chọn kK
(b)-Tính m~ =R(m) và s* = SA,k (m~) .(R là hàm phần dư và là ánh xạ 1- 1 từ M MS).
(c)- Chữ kí của A là s* dùng để xác minh chữ kí và khôi phục m từ nó. 2- Thuật toán xác minh:
(a)- Lấy khoá công khai VA (b)- Tính m~ = VA (s*).
(c)- Kiểm tra xem m~ MR hay không (nếu không thì từ chối chữ kí). (d)- Khôi phục m từ m~ bằng cách tính R-1( m~). M m m MR m~ ~ S s* = SA,k(m~) R MS SA,k
Hình 2.3 Mô hình sơ đồ chữ kí khôi phục thông báo
(i)-Với mỗi kK, SA,k được tính. (ii)-VA được tính.
(iii)-Ngoài A ra không ai có thể tìm được s*S sao cho VA(s*)MR Hàm phần dư:
R và nghịch đảo của nó là R-1
đều công khai. Phải lựa chọn hàm R thích hợp sao cho hệ thống được an toàn. Để minh hoạ điều này, giả sử MR=MS; R và SA,k là các hàm từ M vào MS và MS vào S tương ứng. Ta thấy M và S có cùng số phần tử. Vì thế với s*S, VA (s*) MR, có thể dễ dàng tìm được thông báo m và chữ kí s* tương ứng sẽ được chấp nhận khi xác minh như sau:
1- Chọn ngẫu nhiên số nguyên kK và s*S. 2- Tính m~ = VA (s*).
3-Tính m = R-1( m~).
s* là chữ kí hợp lệ trên thông báo m và được tạo mà không cần biết tập các phép biến đổi kí SA.
Chuyển từ sơ đồ chữ kí với phần phụ đính kèm sang sơ đồ khôi phục thông báo
Bất kỳ sơ đồ chữ kí khôi phục thông báo nào cũng có thể chuyển thành sơ đồ chữ kí số với phần phụ đính kèm bằng cách dùng phương pháp băm thông báo đơn giản rồi kí trên giá trị băm. Thông báo bây giờ giống như đầu vào của thuật toán xác minh. Điều này được minh hoạ qua sơ đồ 2.4. Hàm phần dư R không quá khó để bảo đảm an toàn cho sơ đồ chữ kí và có thể là bất kỳ hàm tương ứng 1-1 nào từ Mh vào MS.
Hình 2.4 Mô hình biến đổi từ sơ đồ chữ kí
khôi phục thông báo sang sơ đồ chữ kí có phần phụ đính kèm