Qui trình chung của lược đồ gồm các bước chọn các tham số, tạo chữ ký, kiểm tra chữ ký.
2.3.1.1. Lựa chọ n các tham số và các khóa
Các bước thực hiện lựa chọn các tham số và khóa như sau 1. Chọn cặp số nguyên tố lớn p và q.
Nên v f1 (M , u) f1 M , R mod n f1 M , R 2
Đặt lp len( p) , lq len(q) ; lp, lq là độ dài số p, q tính theo bit nhị phân trong biểu diễn các số p, q trên máy tính.
Tính n p.q và (n) ( p 1)(q 1) là hàm Euler của n.
Các số nguyên tố p, q được lựa chọn theo bước 1, mục 2.2.1.1 trong lược đồ IFP-RSAP cơ sở I.
2. Chọn một số nguyên x1 trong khoảng (1, n) thỏa mãn điều kiện gcd( x1 , n) 1 và tính tham số khóa y theo thuật toán sau
2.1. Chọn một số nguyên t nguyên tố cùng nhau với n, tức là, gcd(t, n) 1 .
t
2.3. Nếu y (n) hoặc gcd( y, (n)) 1 thì quay lại bước 2.1 (tức là chọn lại t).
3. Tính giá trị x2 theo công thức
x 2 y1 mod (n) .
Hàm băm H(.) có thể chọn theo FIPS 180 - 4 [50] như SHA - 1, SHA - 256, SHA - 512, … với các kích thước dữ liệu đầu ra tương ứng là 160 bit, 256 bit, 512 bit, …
Trong đó
- len(.) là hàm tính độ dài (theo bit) của một số; - y là khóa công khai; n, t là các tham số công khai;
- x1, x2 là các khóa bí mật; p, q và (n) là các tham số bí mật.
2.3.1.2. Tạo chữ ký IFP-RSAP cơ sở II
Thuật toán tạo chữ ký IFP-RSAP cơ sở II
Input n, t, x1, x2, M - thông điệp dữ liệu cần ký. Output (E, S ) - chữ ký.
1. Chọn ngẫu nhiên một giá trị k trong khoảng (1, n) . 2.2. Tính nxy mod1 .
2. Tính giá trị R theo R k t mod n
3. Thành phần thứ nhất (E) của chữ ký được tính theo công thức
E H (M || R)
4. Thành phần thứ hai (S) của chữ ký được tính theo công thức
(2.12)
E x2
mod n (2.13)
5. Return ( E , S )
Trong đó
- Toán tử “||” là phép nối 2 xâu bit.
2.3.1.3. Kiểm tra chữ ký IFP-RSAP cơ sở II
Thuật toán kiểm tra chữ ký IFP-RSAP cơ sở II
Input n, t, y, ( E , S ) , M - thông điệp dữ liệu cần thẩm tra. Output ( E , S ) = true / false.
1. Tính giá trị S theo (2.14) y 2. Tính giá trị R theo (2.15) t E 3. Tính giá trị E theo (2.16) E H (M || R ) (2.14) (2.15) (2.16) 4. Kiểm tra If ( E E ) Then {return true} Else {return false}
Trong đó
- ( E, S ) = true chữ ký hợp lệ, thông điệp dữ liệu M được xác thực về nguồn gốc và tính toàn vẹn.
- ( E, S ) = false chữ ký hoặc/và thông điệp dữ liệu M bị giả mạo.
2.3.2. Tính đúng đắn của lược đồ IFP-RSAP cơ sở II
Tính đúng đắn của các phương pháp hình thành và kiểm tra chữ ký của lược đồ IFP-RSAP cơ sở II được chứng minh qua định lý 2.3, cụ thể như sau
RS y mod n
SS mod n
Định lý 2.3.
Giả sử ta có các tham số và các khóa cùng cặp chữ ký (E, S ) được chọn và tạo bởi các bước trong lược đồ IFP-RSAP cơ sở II. Thành phần E là giá trị được sinh ra do thuật toán kiểm tra theo công thức 2.16.
Khi đó ta có
E E .
Chứng minh.
Theo thuật toán hình thành tham số, thì các tham số y và x2 được tính như sau
t
Theo các công thức (2.13), (2.14) và (2.15) ta thực hiện các biến đổi tương đương như sau
t t x2 t E t Et .E mod n t .E mod n k t mod n R Từ (2.12) và (2.16) suy ra E H (M || R ) H (M || R) E Đây là điều cần chứng minh∎
2.3.3. Mức độ an toàn của lược đồ IFP-RSAP cơ sở II
2.3.3.1. Tấn công khóa bí mật
Ở lược đồ cơ sở, khóa bí mật của một đối tượng ký là cặp (x1,x2), tính an toàn của lược đồ sẽ bị phá vỡ hoàn toàn khi cặp khóa này có thể tính được bởi một hay các đối tượng không mong muốn. Từ thuật toán hình thành tham số và
yx1 modn , x 2 y1 mod (n)
R S y modE n S y mod n y mod nE
k x1 y
mod n mod n x1 modt n mod n k x1 x2 . y mod n x1 k x1 1 modE n x t .E mod n k t x1 1t .E x
khóa trong lược đồ IFP-RSAP cơ sở II cho thấy, để tìm được x2 cần phải tính được tham số φ(n), nghĩa là phải giải được bài toán phân tích số IFP(n), còn để tính được x1 cần phải giải được bài toán RSAP(n,e). Như vậy, độ an toàn về khóa của lược đồ cơ sở được quyết định bởi mức độ khó của việc giải các bài toán IFP(n) và RSAP(n,e).
2.3.3.2. Tấn công giả mạo chữ ký
Từ điều kiện của thuật toán kiểm tra chữ ký trong lược đồ được đề xuất, một cặp ( E , S ) bất kỳ sẽ được coi là chữ ký hợp lệ của đối tượng sở hữu các
tham số công khai (n, t , y) lên thông điệp dữ liệu M nếu thỏa mãn
E (2.17)
Từ điều kiện trên cho thấy, nếu H(.) được chọn là hàm băm có độ an toàn cao (SHA 256/512,...) thì việc chọn ngẫu nhiên cặp ( E , S ) thỏa mãn điều kiện đã được chỉ ra là hoàn toàn không khả thi trong các ứng dụng thực tế.
2.3.4. Độ phức tạp thời gian của lược đồ IFP-RSAP cơ sở II
Để đánh giá về độ phức tạp thời gian của lược đồ chữ ký IFP-RSAP cơ sở II, luận án sẽ đánh giá chi phí tính toán cho các phép toán thực hiện trong các thuật toán tạo chữ ký và kiểm tra chữ ký. Các ký hiệu được sử dụng để tính chi phí cụ thể như sau
- Chi phí tính toán cho phép nhân trên Zn ký hiệu là Mn và độ dài xâu bit của n ký hiệu là len(n) Ln .
- Chi phí tính toán cho phép lũy thừa trong Zn, với len(n) Ln có độ phức tạp xấp xỉ Ln.Mn.
Trong thuật toán tạo chữ ký IFP-RSAP cơ sở II, chi phí tính toán tập trung ở một phép nhân và ba phép lũy thừa. Vậy tổng chi phí tính toán của thuật toán tạo chữ ký ước lượng như sau
Csig (1 3Ln ).M n
Trong thuật toán kiểm tra chữ ký IFP-RSAP cơ sở II, chi phí tính toán tập trung ở ba phép lũy thừa và một phép nhân. Vậy tổng chi phí tính toán của thuật toán kiểm tra chữ ký ước lượng như sau
Cver (3Ln 1).M n
Như vậy, tổng chi phí thời gian thực hiện các thuật toán tạo chữ ký và kiểm tra chữ ký của lược đồ IFP-RSAP cơ sở II được ước lượng như sau
C (6Ln 2)M n
2.3.5. Hiệu quả thực hiện của lược đồ IFP-RSAP cơ sở II
2.3.5.1. Tính hiệu quả của lược đồ IFP-RSAP cơ sở II so với lược đồ chữ ký RSA
Đánh giá sơ bộ về hiệu quả thực hiện của lược đồ IFP-RSAP cơ sở II, có thể dựa trên một số phân tích so sánh với hiệu quả thực hiện của lược đồ chữ ký RSA [57] khi lựa chọn cùng bộ tham số như sau
- Chọn các tham số p, q với |p| = |q| = 1024 bit, khi đó |n| = |φ(n)| = 2048 bit, kích thước các khóa bí mật (x1, x2), khóa công khai y của lược đồ cơ sở và khóa bí mật d của lược đồ RSA |x1| = |x2| = |y| = |d| = 2048 bit.
- Chọn kích thước khóa công khai e của RSA và số mũ t của lược đồ cơ sở |e| = |t| = 16 bit.
- Chọn hàm băm SHA - 1 với kích thước dữ liệu ra 160 bit.
Với các tham số như trên, thuật toán ký của lược đồ cơ sở cần thực hiện ba phép lũy thừa một phép lũy thừa với kích thước số mũ 16 bit
t E
x
E
d
thực hiện nhiều hơn hai phép lũy thừa so với RSA, song do kích thước số mũ của hai phép lũy thừa đầu khá nhỏ so với kích thước số mũ 2048 bit của phép lũy thừa thứ ba trong lược đồ cơ sở cũng như kích thước số mũ của phép lũy
( mod )R k n phép lũy thừa thứ hai có kích thước số mũ 160 bit 1( mod )x n
và phép lũy thừa thứ ba có kích thước 2048 bit ( naS mod2 , với
nxka mod1 ), trong khi đó thuật toán ký của RSA chỉ thực hiện một phép tính lũy thừa duy nhất với kích thước số mũ 2048 bit ( nmS mod ). Tuy phải
thừa trong RSA, nên có thể coi tốc độ thực hiện thuật toán ký của lược đồ cơ sở và RSA là tương đương.
Ở thuật toán kiểm tra, lược đồ cơ sở phải thực hiện nhiều phép lũy thừa hơn so với RSA nên tốc độ thực hiện thuật toán kiểm tra của lược đồ cơ sở là chậm hơn so với RSA.
Tuy nhiên, độ an toàn của RSA sẽ bị phá vỡ hoàn toàn nếu kẻ tấn công chỉ cần giải được một trong hai bài toán IFP(n) hoặc RSAP(n,e). Đối với lược đồ IFP-RSAP cơ sở, kẻ tấn công muốn phá vỡ được độ an toàn của lược đồ thì buộc phải giải được cả hai bài toán IFP(n) và RSAP(n,e). Ngoài ra, việc thực hiện các phép toán lũy thừa với kích thước số mũ 2048 bit hay 4096 bit như ở lược đồ RSA và lược đồ cơ sở là hoàn toàn khả thi trong các ứng dụng thực tế.
2.3.5.2. Đánh giá độ phức tạp thời gian của lược đồ chữ ký IFP-RSAP cơ sở II so với lược đồ chữ ký khác
Để đánh giá hiệu quả thực hiện của lược đồ chữ ký đề xuất với các lược đồ khác, luận án sẽ đánh giá độ phức tạp thời gian của các lược đồ chữ ký thông qua số phép toán cần thực hiện, hay tổng thời gian cần thực hiện các phép toán để tạo chữ ký và kiểm tra chữ ký. Nếu chi phí thời gian thực hiện các phép toán càng thấp thì hiệu quả thực hiện của lược đồ càng cao. Qui ước sử dụng các ký hiệu như sau
Texp thời gian thực hiện phép tính lũy thừa modulo.
Tinv thời gian thực hiện phép nghịch đảo modulo.
Th thời gian thực hiện hàm băm.
Tmul thời gian thực hiện phép nhân modulo.
Trong phần này, luận án so sánh độ phức tạp thời gian của lược đồ IFP- RSAP cơ sở II và lược đồ LD 15.9-01 [10] với giả định các lược đồ đó được tính toán cùng tham số an toàn trong Zn. Kết quả so sánh được trình bày trong các bảng bên dưới.
Bảng 2.1. Độ phức tạp thời gian của lược đồ IFP-RSAP cơ sở II
Bảng 2.2 Độ phức tạp thời gian của lược đồ LD15.9-01 [10]
Tổng hợp chi phí thời gian thực hiện của các thuật toán tạo chữ ký và kiểm tra chữ ký được minh họa qua bảng 2.3.
Bảng 2.3. So sánh chi phí thời gian thực hiện của các lược đồ IFP-RSAP cơ sở II và LD15.9-01 [10]
Theo bảng 2.3 thì độ phức tạp thời gian tổng chi phí cho thuật toán sinh chữ ký và kiểm tra chữ ký của lược đồ chữ ký số IFP-RSAP cơ sở II thấp hơn so với lược đồ LD15.9-01 [10]. Từ các đánh giá, so sánh ở trên cho thấy lược đồ chữ ký số IFP-RSAP cơ sở II có thể tiếp tục nghiên cứu, phát triển thành lược đồ chữ ký số tập thể, đáp ứng các nhu cầu ứng dụng trong thực tế.
Các phép tính Lược đồ IFP-RSAP
cơ sở II
Lược đồ LD15.9-01 [10]
Phép tính lũy thừa modulo 6 Texp 8 Texp
Phép tính nghịch đảo 0 2 Tinv
Phép tính hàm băm 2 Th 2 Th
Phép tính nhân modulo 2 Tmul 3 Tmul
Các phép tính Thuật toán ký Thuật toán kiểm tra
Phép tính lũy thừa modulo 3 3
Phép tính nghịch đảo 0 0
Phép tính hàm băm 1 1
Phép tính nhân modulo 1 1
Các phép tính Thuật toán ký Thuật toán kiểm tra
Phép tính lũy thừa modulo 5 3
Phép tính nghịch đảo 2 0
Phép tính hàm băm 1 1
2.4. Đề xuất lược đồ chữ ký IFP-RSAP tập thể
Trên cơ sở nghiên cứu quá trình phát triển của chữ ký số, để đẩy mạnh việc áp dụng chữ ký số cho nhiều người tham ký vào các văn bản, dữ liệu tại các cơ quan nhà nước, trường học, các đơn vị hành chính sự nghiệp, các doanh nghiệp…, luận án đề xuất xây dựng lược đồ chữ ký số tập thể theo mô hình chữ ký số tập thể dạng kết hợp đã đề xuất trong mục 2.1 của chương 2. Lược đồ chữ ký IFP-RSAP tập thể được phát triển từ lược đồ chữ ký số IFP-RSAP cơ sở II.
Trong lược đồ chữ ký số tập thể được đề xuất, các thông điệp dữ liệu được chứng thực ở các cấp độ
- Thực thể tạo ra các thông điệp dữ liệu;
- Tổ chức mà thực thể tạo ra thông điệp dữ liệu là một thành viên trong đó. Lược đồ chữ ký IFP-RSAP tập thể được xây dựng dựa trên tính khó của việc giải bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố và bài toán khai căn trên Zn.
2.4.1. Các bước triển khai lược đồ chữ ký IFP-RSAP tập thể
Giả sử có văn bản M và có N người tham gia ký vào văn bản M. Bài toán đặt ra là xây dựng các chữ ký số cho văn bản M với N thành viên tham gia ký cùng CA của tổ chức. Tập các thành viên tham gia ký đặt là UU1,U 2 ,...,U N
trong đó, thành viên thứ i có mã thành viên là U i (i 1, 2,..., N ) . Các thành viên nhóm ký có khóa bí mật K Sxi | i 1, 2,..., N và các khóa công khai tương
ứng K P yi | i 1, 2,..., N . Trong đó, CA có cặp khóa bí mật/công khai tương ứng
xca , yca .
Lược đồ được xây dựng theo các bước sau
- Hình thành các tham số hệ thống và khóa của CA; - Hình thành khóa của các đối tượng ký;
- Chứng nhận các đối tượng ký;
- Hình thành chữ ký tập thể; - Kiểm tra chữ ký tập thể.
2.4.1.1. Lựa chọn các tham số và khóa của CA
Để hình thành các tham số hệ thống và khóa của CA được thực hiện theo thuật toán 2.1.
Thuật toán 2.1.
Input lp, lq – độ dài (tính theo bit) của số nguyên tố p, q. Output n, t, xca, yca.
1.
2. 3.
4.
Chọn một cặp số nguyên tố lớn p, q có các độ dài tương ứng là lp, lq
cho trước, sao cho bài toán phân tích số trên Zn p.q là khó giải.
Các số nguyên tố p, q được lựa chọn theo bước 1, mục 2.2.1.1 trong lược đồ IFP-RSAP cơ sở I.
Tính n p q và (n) ( p 1) (q 1)
Chọn ngẫu nhiên một số t là số nguyên lớn trong khoảng (1, n) thỏa mãn gcd(t, n) 1.
Chọn khóa công khai yca ngẫu nhiên và là số nguyên lớn trong khoảng1, (n) và gcd yca ,(n) 1
5. 6.
Tính khóa bí mật xca theo công thức xca yca1 mod (n)
Chọn hàm băm H0,1 Zh , với (h n)
(2.18)
Hàm băm H(.) được lựa chọn theo bước 4, mục 2.3.1.1 trong lược đồ IFP-RSAP cơ sở II.
Trong đó
- yca là khóa công khai;
- n, t là các tham số công khai; - xca là khóa bí mật;
2.4.1.2. Lựa chọn các tham số và các khóa của các thành viên
Giả sử, các tham số n, t được chọn trong thuật toán 2.1. Khi đó, khóa của các thành viên được hình thành theo thuật toán 2.2
Thuật toán 2.2. Input n, t, N. Output K Sxi | i 1, 2,..., N , K P yi | i 1, 2,..., N . 1. 1.1. 1.2. 1.3. 1.4. 2. For i = 1 to N do
Chọn một số xi trong khoảng (1, n) với gcd( xi , n) 1 K S [i] xi
t
K p [i] yi
Return KS , KP
2.4.1.3. Chứng nhận các thành viên tham gia ký
Trước khi tạo các chữ ký (trước khi ký) thì CA cấp chứng nhận (chứng chỉ số) cho các thành viên. Chứng nhận của thành viên Ui là cặp số (ui , vi ) và được tính theo thuật toán sau
Thuậ t toán 2.3. Input n, N, IDi, KP, xca. Output (ui , vi ) 1. 1.1. 1.2. 2. For i = 1 to N do ui H ( yi || IDi ) x Return (ui , vi ) yixi modn viui ca mod n
2.4.1.4. Kiểm tra tính hợp pháp của các thành viên
Quá trình kiểm tra tính hợp pháp cho các đối tượng ký và xác nhận là