Camenisch, Jean-Marc Piveteau, Markus A... Camenisch, Jean-Marc Piveteau, Markus A.[r]
(1)LƯỢC ĐỒ CHỮ KÝ SỐ MÙ XÂY DỰNG TRÊN BÀI TOÁN
KHAI CĂN
THE BLIND SIGNATURE BASED ON FINDING ROOT PROBLEM
Nguyễn Tiền Giang*, Nguyễn Vĩnh Thái**, Lưu Hồng Dũng ***
Bài báo đề xuất lược đồ chữ k ý số mù phát triển từ dạng lược đồ chữ ký sốđược xây dựng dựa tính khó toán khai vành Zn=p.q, p, q số
nguyên tố phân biệt Lược đồ chữ ký đề xuất có mức độ an toàn cao so với lược đồđã cơng bố trước khả giữ bí mật nguồn gốc tin ký 1 Đặt vấn đề
Khái niệm chữ ký số mù lần đầu đề xuất D Chaum vào năm 1983 [1], loại chữ ký sốđược sử dụng để xác thực tính tồn vẹn tin điện tử danh tính người ký, khơng cho phép xác thực nguồn gốc thực tin ký Với loại chữ ký số thơng thường người ký người tạo tin ký, ởđây người ký người tạo tin ký đối tượng hoàn toàn khác Che giấu nguồn gốc tin ký thực chất che dấu danh tính người tạo tin đó, tính chất đặc trưng chữ ký số mù tiêu chí quan trọng đểđánh giá mức độ an toàn loại chữ ký số
Trong [1-5] tác giả đề xuất số lược đồ chữ ký số mù ứng dụng cần bảo vệ tính riêng tư khách hàng hệ thống toán điện tử hay vấn đềẩn danh cử tri việc tổ chức bầu cử trực tuyến Tuy nhiên, điểm yếu chung lược đồ khơng có khả chống lại kiểu cơng làm lộ nguồn gốc tin ký, khả ứng dụng lược đồ thực tế hạn chế
Trên sở phân tích điểm yếu cơng lược đồ biết, báo đề xuất việc phát triển lược đồ chữ ký số mù từ dạng lược đồ chữ ký số [10]được xây dựng dựa tính khó tốn khai vành Zn=p.q, với p, q số
nguyên tố lớn Ưu điểm lược đồ chữ ký số mù khả chống lại kiểu công làm lộ nguồn gốc tin ký so với lược đồ chữ ký số mù biết đến trước
2 Tấn cơng làm lộ nguồn gốc bản tin đối với một số lược đồ chữ k ý số mù
2.1 Tấn công lược đồ chữ ký số mù RSA
*
Cục CNTT – Bộ QP
**
Viện CNTT – Viện KH & CNQS
***
(2)2.1.1 Lược đồ chữ k ý số mù RSA
Lược đồ chữ k ý số mù RSA D Chaum đề xuất phát triển từ lược đồ chữ ký số RSA [6] Lược đồ chữ ký số mù RSA mơ tả sau: Giả sử A người có thẩm quyền ký (người ký), cặp khóa bí mật cơng khai (d,e) A với modulo nđược hình thành theo lược đồ chữ ký RSA B người tạo tin M yêu cầu A ký lên M (người yêu cầu k ý) Để che dấu danh tính B sau tin M ký, thủ tục hình thành chữ ký (“k ý mù”) thực qua bước sau:
Bước 1: B làm “mù” tin M cách chọn ngẫu nhiên giá trị k thỏa mãn:
n k< <
1 k nguyên tố với n (gcd(k,n) = 1), sau B tính:
n k
m
m'= × emod , ởđây: m=H(M) giá trịđại diện tin cần ký M H(.) hàm băm kháng va chạm B gửi tin làm mù (m’) cho A
Bước 2: A ký lên m’ thuật toán ký lược đồ RSA: s'=(m')d modn gửi lại s’ cho B
Bước 3: B “xóa mù” s’ nhận chữ ký s sau: s=s'×k−1modn
Việc kiểm tra tính hợp lệ s tính tồn vẹn M thực nhưở lược đồ RSA Vấn đề cần giải là, đối tượng khẳng định tính tồn vẹn M s chữ ký A, khơng biết tin M B hay đối tượng khác tạo yêu cầu A ký
2.1.2 Tấn cơng làm lộ nguồn gốc tin k ý
Với lược đồ chữ ký số mù RSA mô tả trên, việc xác định danh tính người tạo tin ký M hồn tồn thực Bởi thời điểm ký, người ký (A) nội dung tin ký (M), cịn danh tính người u cầu ký (B) A hồn tồn biết rõ Giả sử có N người yêu cầu A ký lên tin họ tạo {IDBi| i=1,2,…N} danh tính tương ứng với người
đó, nói cách khác B tập N người: B = {Bi| i=1,2,…N} mà: IDB = {IDBi|
i=1,2,…N} tập danh tính tương ứng họ Để xác định danh tính người yêu cầu ký từ tin M chữ ký s tương ứng, với lần ký vào tin, người ký A cần lưu trữ giá trịsi’ danh tính người yêu cầu ký IDBi sở liệu
Có thể xác định danh tính người yêu cầu ký (IDBi) từ tin ký M chữ
ký s tương ứng với (M) thuật toán sau:
Thuật toán 1.1:
Input: (M,s), {(si’, IDBi)| i=1,2,…N} Output: IDB
[1] m←H(M), i = [2] select: (si’, IDBi)
[3] k*←si'×m−d modn
[4] if gcd(k*,n)≠1 then [4.1] i←i+1
[4.2] goto [2]
(3)[6.1] i←i+1 [6.2] goto [2] [7] return IDBi
Nhận xét: Từ Thuật toán 1.1 cho thấy, N – số tin A ký khơng đủ lớn việc xác định danh tính B (người yêu cầu ký/người tạo tin ký) hồn tồn thực Nói cách khác, lược đồ chữ ký số mù RSA khơng an tồn xét theo khả che giấu nguồn gốc tin ký, số lượng tin ký không đủ lớn
2.2 Tấn công lược đồ chữ ký số mù DSA
2.2.1 Lược đồ chữ k ý số DSA cải tiến
Lược đồ chữ ký số DSA cải tiến [7] có tham số hệ thống bao gồm số nguyên tố p, số nguyên tố q ước (p-1) phần tử sinh *
p
Z
g∈ có bậc q Người ký có khóa bí mật x∈Zq khóa cơng khai tương ứng y gx p
mod
= Để ký lên tin M có giá trị đại diện m∈Zq (m=H(M), với H(.) hàm băm), người ký chọn ngẫu nhiên giá trị k∈Zq tính:
R =gk modp
r= Rmodq
s=(k×m+x×r)modq
Chữ k ý lên tin M ởđây cặp (r,s)
Kiểm tra tính hợp lệ chữ ký (r,s) với tin cần tính: T (gs y r)m modp
1
−
−
×
=
Ởđây m giá trịđại diện tin cần thẩm tra M Chữ ký coi hợp lệ thỏa mãn:
r=Tmodq
2.2.2 Lược đồ chữ k ý số mù DSA
Từ lược đồ chữ ký số DSA cải tiến, nhóm tác giả Jan L Camenisch, Jean-Marc Piveteau, Markus A Stadler [9] đề xuất lược đồ chữ ký số mù với thủ tục hình thành chữ ký bao gồm bước sau:
1 a) Người ký (A) chọn giá trị k∈Zq tính R'=gk modp
b) A kiểm tra gcd(R',q)≠1 thực lại bước a) Ngược lại, A gửi R cho người yêu cầu ký (B)
2 a) Người yêu cầu k ý B chọn giá trịα,β∈Zq tính R ( )R' g modp
β α
×
=
b) B kiểm tra gcd(R',q)=1 tính tiếp giá trị m'=α×m×R'×R−1modq
rồi gửi m’ cho A Nếu điều kiện không thỏa mãn, B thực lại bước a)
3 Người ký A tính giá trị s'=(k×m'+x×R')modq gửi cho B
4 Người yêu cầu k ý B tính thành phần (r,s) chữ ký: r=Rmodq,
( )R m q
R s
(4)Thủ tục kiểm tra tính hợp lệ chữ k ý hoàn toàn tương tự nhưở lược đồ chữ ký DSA cải tiến
2.2.3 Tấn công làm lộ nguồn gốc tin k ý
Để công làm lộ nguồn gốc tin k ý M, người ký A cần lưu trữ giá trị tham số {Ri’,mi’,si’} IDBi lần ký A xác định danh tính B
thuật tốn sau:
Thuật toán 1.2:
Input: (M,r,s), {(Ri’, mi’,si’,IDBi)| i=1,2,…N} Output: IDB
[1] m←H(M), i = [2] select: (Ri’, mi’, si’, IDBi)
[3] α ←mi'×m×r×( )R' −1modq
[4] m−1 (s si' r ( )R' −1)modq
× × − × ←
β
[5] R←( )Ri' α ×gβ modp
[6] r*←Rmodq [7] if (r*≠r) then
[7.1] i←i+1 [7.2] goto [2] [8] return IDBi
Nhận xét: Từ Thuật tốn 1.2 cho thấy, N khơng đủ lớn việc xác định danh tính người yêu cầu ký (người tạo tin ký) hoàn tồn thực Nói cách khác, lược đồ chữ ký số mù DSA khơng an tồn số lượng tin ký không đủ lớn
2.3 Tấn công lược đồ chữ ký số mù Nyberg-Rueppel
2.3.1 Lược đồ chữ k ý số Nyberg-Rueppel
Tham số hệ thống lược đồ chữ ký số K Nyberg R A Rueppel đề xuất [8]
được lựa chọn tương tự nhưở lược đồ DSA cải tiến Để k ý lên tin M có giá trị đại diện m∈Zp, người ký chọn ngẫu nhiên giá trị k∈Zq tính:
r=m×gkmodp
s=k+x.rmodq
Chữ k ý lên tin M cặp (r,s) Chữ ký coi hợp lệ thỏa mãn phương trình kiểm tra:
p r g y
m= −s × r × mod
Ởđây m giá trịđại diện tin cần thẩm tra M
2.3.2 Lược đồ chữ k ý số mù Nyberg-Rueppel
Trên sở lược đồ chữ ký Nyberg-Rueppel, nhóm tác giả Jan L Camenisch, Jean-Marc Piveteau, Markus A Stadler [9]đã đề xuất lược đồ chữ ký số mù với thủ tục hình thành chữ ký bao gồm bước sau:
1 Người ký (A) chọn giá trị k∈Zq tính r g p k
mod
(5)2 a) B chọn ngẫu nhiên giá trị α∈Zq,
* q
Z
∈
β tính r =m×gα ×( )r' β modp,
q r
m'= ×β−1mod
b) B kiểm tra m'∈Zq* gửi m’ cho người ký A Ngược lại, B thực lại bước a)
3 A tính giá trị s'=(k+x×m')modq gửi cho B B tính s=(s'×β +α)modq
Chữ k ý A lên M cặp (r,s)
Thủ tục kiểm tra tính hợp lệ chữ k ý hoàn toàn tương tự lược đồ chữ ký Nyberg-Rueppel Nghĩa là: chữ ký (r,s) coi hợp lệ thỏa mãn phương trình kiểm tra:
p r g y
m s r
mod × × = −
Ởđây m giá trịđại diện tin cần thẩm tra M
2.3.3 Tấn công làm lộ nguồn gốc tin k ý
Đối với lược đồ chữ ký mù Nyberg-Rueppel, cơng làm lộ nguồn gốc tin k ý M người ký A lưu trữ giá trị tham số {ri’,mi’,si’} IDBi lần
ký Khi đó, A xác định danh tính B thuật toán sau:
Thuật toán 1.3:
Input: (M,r,s), {(ri’, mi’,si’, IDBi)| i=1,2,…N} Output: IDBi
[1] m←H(M), i = [2] select: (ri’, mi’, si’, IDBi)
[3] β ←r×( )mi' −1modq
[4] α←(s−si'×β)modq
[5] r m g ( )ri' modp
* = × α × β
[6] if (r*≠r) then [6.1] i←i+1 [6.2] goto [2] [7] return IDBi
Nhận xét: Thuật toán 1.3 cho thấy, lược đồ chữ ký số mù Nyberg-Rueppel khơng an tồn xét theo khả chống công làm lộ nguồn gốc tin, số lượng tin ký không đủ lớn
3 Xây dựng lược đồ chữ ký số mù
Phân tích lược đồ chữ ký số mù cho thấy việc làm “mù” tin với tham số bí mật nhưở lược đồ chữ ký số mù RSA, hay với tham số nhưở lược đồ mù DSA Nyberg-Rueppal người ký tìm nguồn gốc thực tin ký, nói cách khác lược đồ khơng có khả che giấu danh tính người tạo tin ký Mục đề xuất việc phát triển lược đồ chữ ký số mù từ lược đồ chữ ký sởđược xây dựng dựa tính khó tốn khai vành Zn=p.q, với p, q số nguyên tố lớn Ưu điểm lược đồ
(6)cho phép người ký hay đối tượng khác xác định nguồn gốc thực tin ký
3.1 Xây dựng lược đồ chữ k ý cơ sở
3.1.1 Bài toán khai vành Zn
Cho cặp số nguyên dương {n,t} với n tích hai số nguyên tốp q, t
được chọn khoảng: < t < (p−1).(q−1) Khi toán khai vành Zn=p.q
hay gọi toán RSA(n,t)được phát biểu sau:
Bài toán RSA(n,t): Với số nguyên dương y∈ ℤn*, tìm x thỏa mãn phương
trình sau:
y n
xtmod = (1.1)
Giải thuật cho tốn RSA(n,t) viết thuật tốn tính hàm
RSA(n,t)(.) với biến đầu vào y giá trị hàm nghiệm x phương trình (1.1): )
(
) ,
( y
RSA
x= nt (1.2)
Dạng lược đồ chữ ký đề xuất cho phép thực thể ký hệ thống dùng chung tham số {n,t}, ởđây thành viên U hệ thống tự chọn cho khóa bí mật x thỏa mãn: 1< x < n, tính cơng khai tham số:
n x
y= tmod
Chú ý:
(i) Mặc dù tốn RSA(n,t) khó, nhiên khơng phải với y∈ℤn* việc tính
RSA(n,t)(y) khó, chẳng hạn y = x t
mod n với x khơng đủ lớn cách duyệt dần x = 1, 2, tìm nghiệm (1.2) ta tìm khóa bí mật
x, tham số mật x phải lựa chọn cho việc tính RSA(n,t)(y)đều khó
(ii) Với lựa chọn x nêu rõ ràng khơng có ngồi U biết giá trị x, việc biết xđủđể xác thực U
3.1.2 Xây dựng lược đồ chữ ký sở dựa toán khai căn
Lược đồ chữ ký sởđề xuất ởđây, ký hiệu LD-01, xây dựng dựa tính khó tốn RSA(n,t) sử dụng để phát triển lược đồ chữ ký số mù
phần Tính đắn mức độ an toàn lược đồ sở LD-01 [10]
a) Thuật tốn hình thành tham số khóa Thuật tốn 2.1:
Input: p, q, x
Output: n, t, y, H(.)
[1] n← p×q; [2] select H { } aZm
∗
1 ,
: , m<n;
[3]
2+
← m
t ;
(7)[5] return {n,t,y,H(.)}
b) Thuật toán ký Thuật toán 2.2:
Input: n, t, x, k, M
Output: (e,s)
[1] r←ktmodn; (1.4)
[2] e←H(r||M); (1.5)
[3] s k xe n
mod ×
← ; (1.6) [4] return (e,s)
Chú thích:
- Tốn tử “||” phép nối xâu bit/ký tự
c) Thuật toán kiểm tra
Thuật toán 2.3:
Input: n, t, y, M, (e,s)
Output: (e,s) = true /false
[1] u←st ×yemodn; (1.7) [2] v←H(u||M); (1.8) [3] if (v=e) then {return true}
else {return false}
Chú thích:
- Nếu kết trả true chữ ký (e,s) hợp lệ, nguồn gốc tính tồn vẹn tin cần thẩm tra M công nhận
- Nếu kết trả false chữ ký (e,s) giả mạo, nội dung tin M bị sửa đổi
3.2 Xây dựng lược đồ chữ ký số mù
Lược đồ chữ k ý số mù, ký hiệu LD-02, phát triển từ lược đồ sở LD-01 Giả sử A người người ký có khóa cơng khai hình thành theo Thuật tốn 2.1 lược đồ sở B người tạo tin M ký
3.2.1 Thuật toán ký Thuật toán 2.4:
Input: n, t, x, k, α, β, M
Output: (e,s)
[1] ra ←ktmodn; (2.1)
[2] r ( )r y t n
a
b β mod
β α
× ×
← ; (2.2)
[3] e←H(rb||M); (2.3) [4] eb (e )modn
β
α × −
← − ; (2.4)
[5] s k xeb n