Lược đồ xác thực lô RSA-Schnorr

Một phần của tài liệu Luận án Tiến sĩ Nghiên cứu phát triển giải pháp xác thực an toàn và quản lý khoá cho cơ sở dữ liệu thuê ngoài (Trang 70 - 72)

Lược đồ RSA-Schnorr dựa trên hai bài toán khó là bài toán IFP của RSA và DLP của Schnorr. Để phá vỡ lược đồ chữ ký này yêu cầu giải quyết đồng thời hai bài toán khó là tính toán logarit rời rạc trên Zp và phân tích thừa số n. Lược đồ ký, kiểm tra chữ ký và xác thực lô lần lượt là thuật toán 2.5, 2.6, 2.7.

Thuật toán 2.5:Thuật toán tạo chữ ký RSA-Schnorr

Input: Dữ liệu m∈M Output: Chữ ký σ ∈S 1 t ∈R (0, n) 2 r =gt mod p 3 s= (t−H(m||r)x)d mod n 4 return (r, s)

Thuật toán 2.6:Thuật toán kiểm tra chữ ký RSA-Schnorr

Input: (m,(r, s))∈M ×S

Output: "Accept" nếu chữ ký là hợp lệ và "Reject" trong trường hợp ngược lại

1 a=se mod n

2 r′=gayH(m||r) modp

3 if (r=r′) then return "Accept" 4 else return "Reject"

Mệnh đề 2.3 Chữ ký σ(r, s) tương ứng với dữ liệu m được ký bởi thuật toán 2.5 là chữ ký số hợp lệ.

Chứng minh.

Tính: a = se mod n = (t−H(m||r)x)ed mod n = (t−H(m||r)x) mod n (do ed = 1 mod φ(n)).

Thuật toán 2.7: Thuật toán V(σi) RSA-Schnorr xác thực k chữ ký

σi(ri, si) cho k dữ liệu mi, i= 1,2, ..., k, được ký bởi cùng một người ký

Input: Dữ liệu mi, k chữ ký σi(ri, si), 1≤i≤k

Output: "Accept" nếu k chữ ký là hợp lệ và "Reject" trong trường hợp ngược lại

1 ai =sei mod n 2 u=Pki=1aimodp

3 v =Pki=1H(mi||ri) modp

4 if (Qk

i=1ri =guyvmodp) (2.12) then return "Accept" 5 else return "Reject"

Ta có: r = gtmod p= ga+H(m||r)x modp= gagH(m||r)x modp = gayH(m||r)mod p= r′

Do đó chữ ký σ(r, s) là chữ ký hợp lệ.

Mệnh đề 2.4 Các chữ ký (σ1, σ2, ..., σk) được ký bởi thuật toán 2.5 là k chữ ký số hợp lệ thì biểu thức (2.12) đúng.

Chứng minh. Theo thuật toán 2.6, để xác định k chữ ký σi(ri, si) là đúng thì từng chữ ký phải thoả mãn biểu thức: r = gayH(m||r) mod p. Trong đó: a = se mod n. Do đó:                    r1 = ga1yH(m1||r1) modp r2 = ga2yH(m2||r2) modp ... rk = gakyH(mk||rk) modp (2.13) Từ (2.13), suy ra: Qk i=1ri = ga1yH(m1||r1)· · ·gakyH(mk||rk) modp = ga1+···+akyH(m1||r1)+···+H(mk||rk) modp = gPki=1aiyPik=1H(mi||ri)modp

Một phần của tài liệu Luận án Tiến sĩ Nghiên cứu phát triển giải pháp xác thực an toàn và quản lý khoá cho cơ sở dữ liệu thuê ngoài (Trang 70 - 72)

Tải bản đầy đủ (PDF)

(127 trang)