Công nghệ thông tin<br />
<br />
PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ TẬP THỂ<br />
Phạm Văn Hiệp1*, Lưu Hồng Dũng2<br />
Tóm tắt: Bài báo đề xuất một lược đồ chữ k ý số tập thể theo mô hình ứng<br />
dụng nhằm bảo đảm các yêu cầu chứng thực về nguồn gốc và tính toàn vẹn cho<br />
các thông điệp dữ liệu ở hai cấp độ khác nhau đó là: thực thể tạo ra nó và tổ<br />
chức mà thực thể tạo ra nó là một thành viên hay bộ phận của tổ chức này. Lược<br />
đồ được xây dựng dựa trên tính khó của việc giải đồng thời hai bài toán phân<br />
tích số và logarit rời rạc trên Zn nhằm nâng cao độ an toàn và hiệu quả thực hiện<br />
của thuật toán.<br />
Từ khóa: Lược đồ chữ ký số; Thuật toán chữ ký số; Chữ ký số; Chữ ký số tập thể.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
Hiện tại, các mô hình ứng dụng chữ ký số đáp ứng tốt các yêu cầu về chứng thực<br />
nguồn gốc và tính toàn vẹn của các thông điệp dữ liệu được tạo ra bởi những<br />
thực thể có tính độc lập. Tuy nhiên, đối với các yêu cầu chứng thực đồng thời<br />
về nguồn gốc và tính toàn vẹn của thông tin ở cấp độ thực thể tạo ra nó và cấp<br />
độ tổ chức (các tổ chức có tư cách pháp nhân trong xã hội) mà thực thể tạo ra<br />
thông tin là một thành viên hay bộ phận của nó, thì các mô hình/thuật toán này -<br />
bao gồm các mô hình hiện tại với các thuật toán chữ ký đơn RSA [1], DSA [2],<br />
GOST R34.10-94 [3], … hay các mô hình với các thuật toán chữ ký bội (digital<br />
multisignature scheme), chữ ký nhóm (group signature schemes) [4-8] đều không<br />
thể đáp ứng các yêu cầu đặt ra. Trong khi đó, các yêu cầu như thế ngày càng trở<br />
nên cần thiết để bảo đảm cho việc chứng thực thông tin trong các thủ tục hành<br />
chính điện tử phù hợp với các thủ tục hành chính trong thực tế xã hội.<br />
Trong bài báo này, nhóm tác giả đề xuất một lược đồ chữ k ý xây dựng theo<br />
mô hình cho phép bảo đảm các yêu cầu chứng thực về nguồn gốc và tính toàn<br />
vẹn cho các thông điệp dữ liệu trong các giao dịch điện tử, mà ở đó các thực thể<br />
ký là thành viên hay bộ phận của các tổ chức có tư cách pháp nhân trong xã hội.<br />
Trong mô hình/thuật toán này, các thông điệp điện tử sẽ được chứng thực ở hai<br />
cấp độ khác nhau: thực thể tạo ra nó và tổ chức mà thực thể tạo ra nó là một<br />
thành viên hay bộ phận của tổ chức này.<br />
<br />
2. CHỮ KÝ SỐ TẬP THỂ - MÔ HÌNH VÀ THUẬT TOÁN<br />
2.1. Mô hình chữ ký số tập thể<br />
Mô hình chữ ký số tập thể được đề xuất ở đây cơ bản dựa trên cấu trúc của<br />
một PKI (Public Key Infrastructure) truyền thống nhằm bảo đảm các chức năng<br />
về chứng thực số cho đối tượng áp dụng là các tổ chức có tư cách pháp nhân<br />
trong xã hội (đơn vị hành chính, cơ quan nhà nước, doanh nghiệp...). Trong mô<br />
hình này [9], đối tượng ký là một hay một nhóm thành viên của một tổ chức và<br />
được phép ký lên các thông điệp dữ liệu với danh nghĩa thành viên của tổ chức<br />
<br />
<br />
<br />
74 P. V. Hiệp, L. H. Dũng, “Phát triển thuật toán chữ ký số tập thể.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
này. Cũng trong mô hình này, CA (Certificate Authority) là bộ phận có chức<br />
năng bảo đảm các dịch vụ chứng thực số, như: chứng nhận một thực thể là<br />
thành viên của tổ chức, chứng thực các thông điệp dữ liệu được ký bởi các thực<br />
thể là thành viên trong một tổ chức, mà CA là cơ quan chứng thực thuộc tổ<br />
chức này. Tính hợp lệ về nguồn gốc và tính toàn vẹn của một thông điệp dữ liệu<br />
ở cấp độ của một tổ chức chỉ có giá trị khi nó đã được CA thuộc tổ chức này<br />
chứng thực. Việc chứng thực được thực hiện bằng chữ ký của CA tương tự như<br />
việc CA chứng thực khóa công khai cho các thực thể cuối trong các mô hình PKI<br />
truyền thống. Trong mô hình này, chữ ký của CA cùng với chữ ký cá nhân của các<br />
thực thể ký hình thành nên chữ ký tập thể cho một thông điệp dữ liệu. Nói chung,<br />
một CA trong mô hình được đề xuất có những chức năng cơ bản như sau:<br />
- Chứng nhận tính hợp pháp của các thành viên trong một tổ chức: thực chất<br />
là chứng nhận khóa công khai và danh tính (các thông tin nhận dạng) của các thành<br />
viên trong tổ chức bằng việc phát hành Chứng chỉ khóa công khai (PKC - Public<br />
Key Certificate). Ngoài ra, CA còn có trách nhiệm thu hồi PKC hết hạn lưu hành<br />
hoặc vi phạm chính sách an toàn của tổ chức.<br />
- Chứng thực nguồn gốc và tính toàn vẹn của các thông điệp dữ liệu: được ký<br />
bởi các đối tượng là thành viên của tổ chức mà CA là cơ quan chứng thực của tổ<br />
chức này.<br />
Một hệ thống cung cấp dịch vụ chứng thực số xây dựng theo mô hình mới đề<br />
xuất sẽ bao gồm các hoạt động cơ bản như sau:<br />
- Phát hành, quản lý chứng chỉ khóa công khai<br />
Trong mô hình chữ ký tập thể, chứng chỉ khóa công khai (PKC) được sử dụng<br />
để một tổ chức chứng nhận các đối tượng ký là thành viên của nó. Cấu trúc cơ bản<br />
của một PKC bao gồm khóa công khai của chủ thể chứng chỉ và các thông tin khác<br />
như: thông tin nhận dạng của chủ thể, trạng thái hoạt động của chứng chỉ, số hiệu<br />
chứng chỉ, thông tin nhận dạng của CA,... Không làm mất tính tổng quát, ở đây sử<br />
dụng thuật ngữ thông tin nhận dạng (IDi) của đối tượng ký để đại diện cho các<br />
thành phần thông tin nói trên. Trong thực tế, có thể sử dụng khuôn dạng chứng chỉ<br />
X.509 cho chứng chỉ khóa công khai trong mô hình mới đề xuất.<br />
- Hình thành và kiểm tra chữ ký số tập thể<br />
Trong mô hình được đề xuất, chữ ký tập thể hình thành trên cơ sở chữ ký của<br />
một hoặc một nhóm đối tượng ký và chứng nhận của CA với vai trò chứng thực của<br />
tổ chức đối với thông điệp dữ liệu cần ký.<br />
Mục tiếp theo sẽ đề xuất một lược đồ chữ ký phù hợp theo mô hình chữ ký tập<br />
thể trên đây.<br />
2.2. Xây dựng thuật toán theo mô hình chữ ký số tập thể<br />
Việc xây dựng thuật toán theo mô hình chữ ký tập thể được thực hiện qua 2<br />
bước: xây dựng lược đồ chữ ký cơ sở [10] và xây dựng lược đồ chữ ký tập thể.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 75<br />
Công nghệ thông tin<br />
<br />
2.2.1. Lược đồ cơ sở<br />
Lược đồ cơ sở đề xuất ở đây được xây dựng dựa trên tính khó của việc giải<br />
đồng thời hai bài toán phân tích số (IFP) và bài toán logarit rời rạc (DLP) trên Zn<br />
nhằm nâng cao độ an toàn của thuật toán, đây là các bài toán khó được sử dụng<br />
làm cơ sở xây dựng hệ mật RSA.<br />
Lược đồ cơ sở bao gồm các thuật toán hình thành tham số và khóa, thuật toán<br />
ký và kiểm tra chữ ký như sau:<br />
a) Thuật toán hình thành tham số và khóa<br />
Thuật toán 1.1: Hình thành tham số và khóa.<br />
Input: lp, lq – độ dài (tính theo bit) của số nguyên tố p, q.<br />
Output: n, m, g, y, x1, x2.<br />
[1]. Chọn 1 cặp số p, q nguyên tố với: len(p) = lp, len(q)= lq sao cho bài<br />
toán phân tích số trên Zn là khó giải.<br />
[2]. Tính: n = p. q và: φ(n) = (p – 1).(q – 1)<br />
[3]. Chọn p1, q1 là các số nguyên tố, trong đó: p1 là ước của (p-1) và không<br />
là ước của (q-1), còn q1 là ước của (q-1) và không là ước của (p-1).<br />
[4]. Tính: m = p1. q1<br />
[5]. Chọn g là phần tử sinh của nhóm Zn*, được tính theo:<br />
(n)<br />
g m<br />
mod n và thỏa mãn: gcd g , n 1 , với: 1, n <br />
[6]. Chọn khóa bí mật thứ nhất x1 trong khoảng (1, m)<br />
x<br />
[7]. Tính khóa công khai theo: y g 1 mod n (1)<br />
Kiểm tra nếu: y (n) hoặc: gcd(y, (n)) 1 thì thực hiện lại từ bước [6]<br />
[8]. Tính khóa bí mật thứ hai theo: x2 y 1 mod ( n) (2)<br />
[9]. Chọn hash function H: 0,1 Z h , với: h < n<br />
Chú thích:<br />
+ len(.) là hàm tính độ dài (theo bit) của một số.<br />
+ Khóa công khai là (n,g,y), khóa bí mật là (m, x1, x2).<br />
+ Các tham số: p, q, p1, q1 và φ(n) cần phải được giữ bí mật.<br />
b) Thuật toán ký<br />
Thuật toán 1.2: Sinh chữ ký.<br />
Input: n, g, m, x1, x2, M – bản tin cần ký.<br />
Output: (E,S) – chữ ký.<br />
[1]. Chọn ngẫu nhiên giá trị k trong khoảng (1, m)<br />
[2]. Tính giá trị các giá trị: R g k mod n<br />
[3]. Tính thành phần thứ nhất của chữ ký theo: E H ( M || R )<br />
[4]. Tính thành phần thứ 2 của chữ ký theo:<br />
S x2 k x1 E mod m (3)<br />
<br />
<br />
<br />
76 P. V. Hiệp, L. H. Dũng, “Phát triển thuật toán chữ ký số tập thể.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Chú thích:<br />
+ Toán tử “||” là phép nối 2 xâu bit.<br />
c) Thuật toán kiểm tra<br />
Thuật toán 1.3: Kiểm tra chữ ký.<br />
Input: n, g, y, M – bản tin cần thẩm tra.<br />
Output: (E,S) = true/false.<br />
[1]. Tính giá trị: R g S y y E mod n<br />
[2]. Tính giá trị: E H ( M || R )<br />
[3]. Nếu: E E thì: (E,S) = true, ngược lại: (E,S) = false<br />
Chú thích:<br />
+ (E,S) = true: chữ ký hợp lệ, bản tin M được xác thực về nguồn gốc và<br />
tính toàn vẹn.<br />
+ (E,S) = false: chữ ký hoặc/và bản tin bị giả mạo.<br />
d) Tính đúng đắn của lược đồ cơ sở<br />
Với các tham số và khóa được hình thành bởi Thuật toán 1.1, chữ ký (E,S)<br />
được sinh bởi Thuật toán 1.2, giá trị E được tạo bởi Thuật toán 1.3 thì điều cần<br />
chứng minh ở đây là: E E .<br />
Thật vậy, do:<br />
R gS y y E<br />
<br />
mod n g x2 .k x1 . E mod n g<br />
y x1<br />
mod n <br />
E<br />
mod n<br />
k x1 . E . x 2 . y x1 . E k<br />
g g mod n g mod n R<br />
Suy ra điều cần chứng minh: E H ( M || R ) H ( M || R) E<br />
e) Mức độ an toàn của lược đồ cơ sở<br />
+ Tấn công khóa bí mật<br />
Ở lược đồ mới đề xuất, khóa bí mật của một đối tượng ký là cặp (x1,x2), tính an<br />
toàn của lược đồ sẽ bị phá vỡ khi cặp khóa này có thể tính được bởi một hay các<br />
đối tượng không mong muốn. Từ Thuật toán 1.1 cho thấy, để tìm được x2 cần<br />
phải tính được tham số φ(n), nghĩa là phải giải được IFP, còn để tính được x1 cần<br />
phải giải được DLP. Như vậy, để tìm được cặp khóa bí mật này kẻ tấn công cần<br />
phải giải được đồng thời 2 bài toán IFP và DLP. Ngoài ra, tham số m cũng được sử<br />
dụng với vai trò khóa bí mật trong thuật toán ký. Như vậy, để phá vỡ tính an toàn<br />
của thuật toán, kẻ tấn công còn phải giải được bài toán tìm bậc của g.<br />
+ Tấn công giả mạo chữ ký<br />
Từ điều kiện của Thuật toán 1.3, một cặp (E,S) bất kỳ sẽ được coi là chữ ký<br />
hợp lệ của đối tượng sở hữu các tham số công khai (n, g, y) lên bản tin M nếu thỏa<br />
mãn:<br />
<br />
E H M || g S y modn y E<br />
(4)<br />
Từ (4) cho thấy, nếu H(.) được chọn là hàm băm có độ an toàn cao (SHA<br />
256/512,...) thì việc tạo ngẫu nhiên được cặp (E,S) thỏa mãn (4) là không khả thi<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 77<br />
Công nghệ thông tin<br />
<br />
trong các ứng dụng thực tế.<br />
2.2.2. Lược đồ chữ ký tập thể<br />
Lược đồ chữ ký tập thể ở đây được phát triển từ lược đồ cơ sở được đề xuất ở<br />
mục 2.2.1 với các chức năng như sau:<br />
- Hình thành chữ ký tập thể từ chữ ký cá nhân của một hay một nhóm đối<br />
tượng ký và chữ ký của CA. Kích thước của chữ ký không phụ thuộc vào số lượng<br />
thành viên nhóm ký.<br />
- Kiểm tra chữ ký tập thể của một nhóm đối tượng được thực hiện tương tự<br />
như chữ ký do một đối tượng ký tạo ra.<br />
Giả sử nhóm ký gồm N-thành viên: U = {Ui| i=1,2,...,N}. Các thành viên nhóm<br />
ký có khóa bí mật là: KS = {xi| i=1,2,...,N} và các khóa công khai tương ứng là:<br />
KP= yi|i=1,2,...,N}. Còn CA có cặp khóa bí mật/công khai tương ứng là:{xca, yca}.<br />
a) Thuật toán hình thành tham số và khóa của CA<br />
Thuật toán 2.1: Hình thành tham số hệ thống và khóa của CA.<br />
Input: lp, lq – độ dài (tính theo bit) của số nguyên tố p, q.<br />
Output: n, m, g, xca, yca.<br />
[1]. Chọn một cặp số p, q nguyên tố với: len(p) = lp, len(q)= lq sao cho bài<br />
toán phân tích số trên Zn =p.q là khó giải.<br />
[2]. Tính: n = p. q và: φ(n) = (p – 1).(q – 1)<br />
[3]. Chọn p1, q1 là các số nguyên tố, trong đó: p1 là ước của (p-1) và không<br />
là ước của (q-1), còn q1 là ước của (q-1) và không là ước của (p-1).<br />
[4]. Tính: m = p1. q1<br />
[5]. Chọn g là phần tử sinh của nhóm Zn * , được tính theo:<br />
(n)<br />
g m<br />
mod n và thỏa mãn: gcd g , n 1 , với: 1, n<br />
[6]. CA chọn khóa bí mật thứ nhất xca1 trong khoảng (1, m)<br />
[7]. CA tính khóa công khai yca theo: y g xca1 mod n<br />
Kiểm tra nếu: y ca (n) hoặc: gcd( yca , (n)) 1 thì thực hiện lại từ<br />
bước [6]<br />
1<br />
[8]. Tính khóa bí mật xca2 theo: xca yca mod ( n )<br />
[9]. Chọn hash function H: 0,1 Z h , với: h < n<br />
b) Thuật toán hình thành khóa của các đối tượng ký<br />
Thuật toán 2.2: Hình thành khóa của U = {Ui| i=1,2,.,N}.<br />
Input: n, g, KS = {xi| i = 1,2,…,N}.<br />
Output: KP = {yi| i = 1, 2,..,N}.<br />
[1]. for i = 1 to N do<br />
[1.1]. yi g x mod n<br />
i<br />
<br />
<br />
<br />
<br />
[1.2]. K p [i] y i<br />
<br />
<br />
78 P. V. Hiệp, L. H. Dũng, “Phát triển thuật toán chữ ký số tập thể.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
[2]. return KP<br />
c) Thuật toán chứng thực các đối tượng ký Ui<br />
Thuật toán này được sử dụng để hình thành chứng nhận (chứng chỉ số) của CA<br />
cho các đối tượng ký Ui (i=1,2,..,N)<br />
Thuật toán 2.3: CA chứng nhận tính hợp pháp của đối tượng ký Ui.<br />
Input: IDi , yi , xca1 , xca 2 .<br />
Output: ( ui , vi ) – chứng nhận của CA đối với Ui.<br />
[1]. ki H ( xca1 || yi || xca 2 || IDi )<br />
[2]. ri g ki mod n<br />
[3]. ui H ( yi || IDi || ri )<br />
[4]. vi xca 2 ki xca1 ui mod m<br />
[5]. return ( ui , vi );<br />
d) Thuật toán kiểm tra tính hợp pháp của các đối tượng ký Ui (i=1,2,..,N)<br />
Thuật toán 2.4: Kiểm tra tính hợp pháp các đối tượng ký.<br />
Input: IDi , yi , yca , ( ui , vi ).<br />
Output: ( ui , vi ) = true / false.<br />
[1]. ri g v yca u<br />
i<br />
y ca i mod n<br />
[2]. u i H (ri || y i || IDi )<br />
[3]. if ( ui ui ) then {return true} else {return false}<br />
Chú thích:<br />
+ ( ui , vi ) = true: đối tượng ký Ui được xác nhận là thành viên của hệ thống.<br />
+ ( ui , vi ) = false: Ui là một đối tượng giả mạo.<br />
e) Thuật toán ký tập thể<br />
Thuật toán 2.5: Hình thành chữ ký tập thể.<br />
Input: M, n, m, KS = {xi| i = 1, 2,..,N}, KP = {yi| i = 1, 2,..,N}.<br />
Output: (E,S) – chữ ký của U lên M.<br />
[1]. for i = 1 to N do<br />
[1.1]. ki H ( xi || M )<br />
[1.2]. ri g k mod n i<br />
<br />
<br />
<br />
[1.3]. send ri to CA<br />
[2]. r 1 ; for i = 1 to N do r r ri mod n<br />
[3]. k ca H ( xca1 || M ) , rca g kca mod n<br />
[4]. r r rca mod n<br />
[5]. E H (M || r ) , send E to {U1, U2,...., Ui,..., UN};<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 79<br />
Công nghệ thông tin<br />
<br />
[6]. for i = 1 to N do<br />
[6.1]. Si ki xi E modn<br />
[6.2]. send Si to CA<br />
[7]. Su ← 0; for i = 1 to N do<br />
[7.1]. if ( ri g s yi E mod n ) then {return (0,0)}<br />
i<br />
<br />
<br />
<br />
<br />
[7.2]. S u S u S i <br />
[8]. S xca 2 k ca S u mod m<br />
[9]. return (E,S);<br />
Chú thích:<br />
+ Các bước [1],[6] được thực hiện bởi các đối tượng ký Ui (i = 1,2,.. ,N).<br />
+ Các bước [2], [3], [4], [5], [7], [8] và [9] được thực hiện bởi CA.<br />
g) Thuật toán kiểm tra chữ ký tập thể<br />
Thuật toán 2.6: Kiểm tra chữ ký tập thể<br />
Input: g, n, yca, KP ={yi| i =1,2,..,N}, M.<br />
Output: (E,S) = true / false.<br />
[1]. if (E = 0 or S = 0) then return false<br />
[2]. y ← 1; for i = 1 to N do<br />
y y yi mod n<br />
[3]. v g S . yca y E mod n<br />
[4]. E H (M || v)<br />
[5]. if ( E E ) then {return true} else {return false}<br />
Chú thích:<br />
+ (E,S) = true: chữ ký hợp lệ, bản tin M được xác thực về nguồn gốc và<br />
tính toàn vẹn.<br />
+ (E,S) = false: chữ ký hoặc/và bản tin bị giả mạo.<br />
h) Tính đúng đắn của lược đồ chữ ký tập thể<br />
Tính đúng đắn của lược đồ chữ ký tập thể được đề xuất bao gồm: tính đúng đắn<br />
của thuật toán chứng nhận và kiểm tra tính hợp pháp của các đối tượng ký và tính<br />
đúng đắn của thuật toán ký và kiểm tra chữ ký tập thể. Trong đó, việc chứng minh<br />
tính đúng đắn của thuật toán chứng nhận và kiểm tra tính hợp pháp của các đối<br />
tượng ký được thực hiện tương tự như ở lược đồ cơ sở (mục 2.2.1). Đối với thuật<br />
toán ký và kiểm tra chữ ký tập thể thì tính đúng đắn được chứng minh như sau:<br />
Với các tham số và khóa được hình thành bởi thuật toán 2.1 và 2.2, chữ ký tập<br />
thể (E,S) được sinh bởi thuật toán ký 2.5, giá trị E được tạo bởi thuật toán kiểm tra<br />
2.6 thì điều cần chứng minh ở đây là E E .<br />
Thật vậy, theo các thuật toán 2.1, 2.2 và 2.5 ta có:<br />
<br />
<br />
80 P. V. Hiệp, L. H. Dũng, “Phát triển thuật toán chữ ký số tập thể.”<br />
Nghiên cứu khoa học công nghệ<br />
N N N<br />
y yi mod n , r ri mod n mod n và: s si mod m<br />
i 1 i 1 i 1<br />
<br />
Nên:<br />
N<br />
xca 2 . k ca <br />
k i xi . E mod m . y ca E <br />
N <br />
v g S . y ca<br />
y E<br />
mod n g<br />
<br />
i 1 <br />
y i mod n mod n<br />
i 1 <br />
<br />
N N N N<br />
ki E . x i E . x i . ki <br />
i 1 <br />
g k ca g i 1 g i 1 g i 1 mod n g k ca<br />
g mod n<br />
<br />
<br />
N N<br />
<br />
g k ca g k i mod n mod n r ca<br />
<br />
ri mod n mod n r<br />
i 1 i 1 <br />
Từ đây suy ra: E H ( M || v ) mod m H ( M || r ) mod m E<br />
i) Tính an toàn của lược đồ chữ ký tập thể<br />
Mức độ an toàn của lược đồ chữ ký tập thể ở đây được thiết lập dựa trên mức độ an<br />
toàn của lược đồ cơ sở đã đề xuất ở mục 2.2.1. Do vậy, về cơ bản mức độ an toàn<br />
của lược đồ chữ ký tập thể cũng được quyết định bởi mức độ khó của việc giải<br />
đồng thời hai bài toán IFP và DLP. Ngoài ra, với các lược đồ chữ ký bội nói chung<br />
và lược đồ chữ ký tập thể đề xuất ở đây luôn tiềm ẩn nguy cơ tấn công giả mạo từ<br />
bên trong hệ thống. Thực hiện việc kiểm tra tính hợp pháp của các thành viên<br />
nhóm ký ở bước [7.1] trong thuật toán 2.5 chính là nhằm giải quyết vấn đề này.<br />
3. KẾT LUẬN<br />
Việc áp dụng chữ ký số phù hợp với các hoạt động thực tế tại các cơ quan,<br />
đơn vị, doanh nghiệp,… hiện nay là rất cần thiết. Các mô hình đang được triển<br />
khai hiện nay vẫn chưa đáp ứng được việc chứng thực về nguồn gốc và tính toàn<br />
vẹn của thông tin ở cấp độ tổ chức mà thực thể ký là một thành viên hay bộ phận<br />
của tổ chức đó. Bài báo đã đề xuất một thuật toán phù hợp với mô hình ứng<br />
dụng chữ ký số giải quyết được vấn đề đã nêu trên.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. R.L. Rivest, A. Shamir, L. Adleman, A method for obtaining digital signatures<br />
and public-key cryptosystems, Communications of the ACM, 21 (1978), pp.<br />
120-126.<br />
[2]. National Institute of Standards and Technology, NIST FIPS PUB 186-4.<br />
Digital Signature Standard, U.S. Department of Commerce, 2013.<br />
[3]. GOST R34.10-94, Russian Federation Standard. Information Technology.<br />
Cryptographic data Security. Produce and check procedures of Electronic<br />
Digital Signature based on Asymmetric Cryptographic Algorithm,<br />
Government Committee of the Russia for Standards, 1994 (in Russian).<br />
[4]. S. J. Hwang, M. S. Hwang, S. F. Tzeng, “A new digital multisignature scheme<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 81<br />
Công nghệ thông tin<br />
<br />
with distinguished signing authorities”, Journal of Information Science and<br />
Engineering, 19 (2003), pp. 881-887.<br />
[5]. N.A. Moldovyan, S.E. Novikova, N. Minh, T. Hung, “Group signature<br />
protocol based on collective signature protocol and masking”, International<br />
Journal of Emerging Technology & Advanced Engg, 2016.<br />
[6]. Lưu Hồng Dũng, Trần Trung Dũng, “Xây dựng lược đồ đa chữ ký số tuần tự”,<br />
Tạp chí Khoa học và Kỹ thuật (Học viện KTQS), số 141, 06/2011.<br />
[7]. Đặng Minh Tuấn, “Lược đồ chữ ký số tập thể đa thành phần dựa trên bài<br />
toán logarit rời rạc”, Tạp chí Nghiên cứu KH và CN Quân sự, 2011, pp.7-14.<br />
[8]. Lưu Hồng Dũng, Nguyễn Thị Thu Thủy, “Nghiên cứu xây dựng mô hình<br />
tổng quát cho các lược đồ chữ ký số phân biệt trách nhiệm”, Tạp chí Khoa học<br />
và Kỹ thuật (Học viện KTQS), số 146, 02/2012, pp. 124- 36.<br />
[9]. Phạm Văn Hiệp, Lưu Hồng Dũng, “Chữ ký số - Mô hình ứng dụng và thuật<br />
toán”, Hội nghị Quốc gia lần thứ 11 về Nghiên cứu cơ bản và ứng dụng Công<br />
nghệ thông tin (FAIR 11), Hà Nội - 8/2018.<br />
[10]. Phạm Văn Hiệp, Nguyễn Hữu Mộng, Lưu Hồng Dũng, “Một thuật toán chữ<br />
ký xây dựng trên tính khó của việc giải đồng thời hai bài toán phân tích số và<br />
logarit rời rạc”, Tạp chí Khoa học và Công nghệ (Đại học Đà Nẵng), số 7<br />
(128), 7/2018, pp. 75-79.<br />
<br />
ABSTRACT<br />
DEVELOPING A COLLECTIVE DIGITAL SIGNATURE ALGORITHM<br />
The paper proposes the development of a collective digital schema based<br />
on the new application model, which aims to ensure the authentication<br />
requirements for origin and integrity of data messages in electrical<br />
transactions. In this model, electronic messages will be authenticated at two<br />
different levels: the entity that created it and the organization that created it<br />
is a member or part of the organization. The schema is based on the difficulty<br />
of solving two simultaneous numerical and discrete logarithms on Zn to<br />
improve the security of the algorithm and ensure correctness of the schema.<br />
Key words: Digital signature schemes; Digital signature algorithm; Digital signature; Collective signature.<br />
<br />
Nhận bài ngày 02 tháng 7 năm 2018<br />
Hoàn thiện ngày 24 tháng 9 năm 2018<br />
Chấp nhận đăng ngày 05 tháng 11 năm 2018<br />
<br />
1<br />
Địa chỉ: ĐH Công Nghiệp Hà Nội;<br />
2<br />
Học viện kỹ thuật quân sự.<br />
*<br />
Email: hieppv@haui.edu.vn.<br />
<br />
<br />
<br />
<br />
82 P. V. Hiệp, L. H. Dũng, “Phát triển thuật toán chữ ký số tập thể.”<br />