Tải bản đầy đủ (.pdf) (24 trang)

luận án nghiên cứu phát triển các lược đồ chữ ký số tập thể

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (899.23 KB, 24 trang )

1

MỞ ĐẦU

1. Tính cấp thiết của đề tài
Trong các giao dịch điện tử, chữ ký số được sử dụng nhằm đáp ứng yêu cầu
chứng thực về nguồn gốc và tính toàn vẹn của thông tin. Các mô hình ứng dụng
chữ ký số hiện tại cho phép đáp ứng tốt các yêu cầu về chứng thực nguồn gốc
thông tin được tạo ra bởi những thực thể có tính độc lập. Tuy nhiên, khi mà các
thực thể tạo ra thông tin là thành viên hay bộ phận của một tổ chức (đơn vị hành
chính, hệ thống kỹ thuật, ) thì nguồn gốc thông tin ở cấp độ tổ chức mà thực
thể tạo ra nó là một thành viên hay bộ phận lại không được chứng thực. Hiện
tại, có thể chưa được đặt ra yêu cầu có tính cấp thiết về vấn đề này, nhưng trong
một tương lai không xa, khi Chính phủ điện tử và Thương mại điện tử cùng với
hạ tầng công nghệ thông tin và truyền thông đã phát triển mạnh mẽ thì nhu cầu
ứng dụng chữ ký số với các yêu cầu đặt ra như thế sẽ là tất yếu.
Xuất phát từ thực tế đó, NCS đã chọn đề tài “Nghiên cứu, phát triển
các lƣợc đồ chữ ký sô tập thể” với mong muốn có những đóng góp vào
sự phát triển khoa học và công nghệ chung của đất nước.
2. Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu của Luận án bao gồm:
- Cơ sở của các hệ mật khóa công khai và các lược đồ chữ ký số.
- Nguyên lý xây dựng các hệ mật khóa công khai và lược đồ chữ ký số.
- Các mô hình ứng dụng mật mã khóa công khai và chữ ký số.
Phạm vi nghiên cứu của Luận án bao gồm:
- Các chuẩn chữ ký số DSS của Hoa Kỳ và GOST R34.10-94 của Liên
bang Nga và các cơ sở toán học liên quan.
3. Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của Luận án bao gồm:
- Đề xuất mô hình ứng dụng chữ ký số nhằm đáp ứng các yêu cầu đặt ra
khi triển khai một Chính phủ điện tử trong thực tế xã hội, áp dụng phù


hợp cho đối tượng là các tổ chức, cơ quan hành chính, các doanh
nghiệp,
- Phát triển một số lược đồ chữ ký số có độ an toàn và hiệu quả thực hiện
cao theo mô hình đã đề xuất.
4. Phƣơng pháp nghiên cứu
- Phát triển một số lược đồ cơ sở dựa trên các chuẩn chữ ký số được đánh
giá có độ an toàn và hiệu quả thực hiện cao.
- Xây dựng một số lược đồ chữ ký số theo mô hình ứng dụng mới đề xuất
có khả năng ứng dụng trong thực tiễn.
2

5. Nội dung nghiên cứu
Nội dung nghiên cứu của Luận án bao gồm:
- Các chuẩn chữ ký số DSS của Hoa Kỳ và GOST R34.10-94 của Liên
bang Nga.
- Phát triển một số lược đồ cơ sở dựa trên các lược đồ chữ k‎ý RSA, DSA
và GOST R34.10-94.
- Xây dựng một số lược đồ chữ ký số từ các lược đồ cơ sở theo mô hình
ứng dụng mới đề xuất.
6. Ý nghĩa khoa học và thực tiễn
- Đề xuất mô hình ứng dụng chữ ký số nhằm đáp ứng các yêu cầu đặt ra
cho việc chứng thực các văn bản, tài liệu,… khi triển khai một Chính
phủ điện tử trong thực tế xã hội. Mô hình mới đề xuất áp dụng phù hợp
cho đối tượng là các tổ chức, cơ quan hành chính, các doanh
nghiệp, hoàn toàn phù hợp với các thủ tục hành chính trong thực tế
hiện nay.
- Một số lược đồ chữ ký‎ số được đề xuất có tính mới về nguyên l‎ý xây
dựng, có tính ứng dụng thực tế, khả thi và không vi phạm về vấn đề bản
quyền.
7. Bố cục của luận án

Luận án bao gồm 3 chương cùng với các phần Mở đầu, Kết luận và
Danh mục các công trình, bài báo đã được công bố của tác giả liên quan
đến các vấn đề nghiên cứu của Luận án.
Chương 1. Khái quát về mô hình chữ ký số tập thể và hướng nghiên cứu
của đề tài.
Trình bày một số khái niệm và thuật ngữ liên quan đến các nội dung
nghiên cứu và được sử dụng trong Luận án. Định hướng nghiên cứu của đề
tài Luận án. Đề xuất mô hình ứng dụng chữ ký‎ số áp dụng phù hợp cho đối
tượng là các tổ chức có tư cách pháp nhân trong xã hội.
Chương 2. Xây dựng lược đồ chữ ký số tập thể dựa trên hệ mật RSA.
Trình bày cơ sở toán học của hệ mật RSA, từ đó đề xuất xây dựng một
dạng lược đồ chữ ký‎ số làm cơ sở để phát triển các lược đồ chữ ký số tập
thể theo mô hình ứng dụng đã đề xuất ở Chương 1.
Chương 3. Xây dựng lược đồ chữ ký số tập thể dựa trên hệ mật
ElGamal.
Đề xuất xây dựng một lược đồ chữ k‎ý số theo cùng nguyên tắc với các
thuật toán chữ k‎ý số họ ElGamal như DSA, GOST R34.10-94, từ đó phát
triển 2 lược đồ chữ ký số tập thể theo mô hình mới đề xuất.

3

CHƢƠNG 1
KHÁI QUÁT VỀ MÔ HÌNH CHỮ KÝ SỐ TẬP THỂ VÀ HƢỚNG
NGHIÊN CỨU CỦA ĐỀ TÀI
Nội dung Chương 1 phân tích các yêu cầu của thực tế, từ đó đề xuất mô
hình ứng dụng chữ k‎ý số nhằm đáp ứng các yêu cầu thực tế đặt ra. Mô
hình này được sử dụng để phát triển các lược đồ chữ ký số trong các
chương tiếp theo. Nội dung Chương 1 cũng thống nhất một số khái niệm
và thuật ngữ liên quan được sử dụng trong Luận án.
1.1 Một số khái niệm và thuật ngữ liên quan

1.1.1 Một số khái niệm
1.1.2 Các thuật ngữ liên quan
1.2 An toàn thông tin trong các hệ thống truyền tin
1.2.1 Các hệ thống truyền tin và một số vấn đề về an toàn thông tin
Cấu trúc của một hệ thống truyền tin với các thành phần chức năng cơ
bản được chỉ ra trên Hình 1.1 như sau:



Đứng về quan điểm an toàn thông tin, một hệ thống như thế có thể tiềm
ẩn nhiều nguy cơ gây mất an toàn, như:
- Lộ bí mật thông tin.
- Thông tin có thể bị mất mát, sai lệch.
- Thông tin có thể bị giả mạo.
1.2.2 Giải pháp an toàn thông tin trong các hệ thống truyền tin
Trên thực tế, kỹ thuật mật mã là một giải pháp hiệu quả cho việc bảo
đảm an toàn thông tin trong các hệ truyền dẫn và xử lý thông tin phân tán.
Mô hình chung của một hệ thống truyền tin an toàn sử dụng mật mã được
chỉ ra trên Hình 1.2.
Nguồn
tin
Điều
chế
Giải
điều chế
Nhận
tin
Hình 1.1 Cấu trúc của một hệ truyền tin cơ bản
Kênh
truyền

Bên phát
Bên thu
4



1.3 Hƣớng nghiên cứu của đề tài Luận án
1.3.1 Các vấn đề thực tế và những hạn chế của mô hình hiện tại
Trên thực tế, nhiều khi một thực thể ký (con người, thiết bị kỹ thuật, ) là
thành viên hay bộ phận của một tổ chức (đơn vị hành chính, hệ thống kỹ
thuật, ) và thông điệp dữ liệu (bản tin, thông báo, tài liệu, ) được thực thể ký
tạo ra với tư cách là một thành viên hay bộ phận của tổ chức đó. Trong trường
hợp này, thông tin không chỉ có nguồn gốc từ thực thể (ký) tạo ra nó, mà còn
có nguồn gốc từ tổ chức mà ở đó thực thể ký là một thành viên hay bộ phận
của tổ chức này. Vấn đề ở đây là, thông tin cần phải được chứng thực về
nguồn gốc và tính toàn vẹn ở 2 cấp độ: cấp độ cá nhân thực thể ký và cấp độ
tổ chức mà thực thể ký là một thành viên hay bộ phận của nó. Các mô hình
ứng dụng chữ ký số hiện tại chủ yếu mới chỉ đảm bảo cho nhu cầu chứng thực
thông tin ở cấp độ cá nhân của thực thể ký, còn việc chứng thực đồng thời ở cả
2 cấp độ như thế hiện tại vẫn chưa được đặt ra. Có thể là, một yêu cầu như vậy
chưa thực sự cần thiết được đặt ra ở thời điểm hiện tại, nhưng rõ ràng đó sẽ là
nhu cầu thực tế và ngày càng trở nên cần thiết trong bối cảnh Chính phủ điện
tử, Thương mại điện tử hay nói chung là các giao dịch điện tử đang được phát
triển với qui mô toàn cầu.
Từ những phân tích trên đây, hướng nghiên cứu của đề tài Luận án là đề
xuất mô hình ứng dụng chữ ký số, được gọi là mô hình chữ ký‎ số tập thể,
nhằm đáp ứng cho các yêu cầu chứng thực nguồn gốc và tính toàn vẹn
Nguồn
tin


mật
Điều chế
Kênh
truyền
Giải điều
chế

mật
Nhận
tin
Hình 1.2 Cấu trúc của một hệ truyền tin an toàn
Bên phát
Bên thu
5

thông tin ở nhiều cấp độ khác nhau và xây dựng các lược đồ chữ ký số theo
mô hình mới đề xuất nhằm đáp ứng tốt các yêu cầu mà thực tiễn đặt ra.
1.3.2 Mô hình chữ ký số tập thể
Mô hình chữ ký‎ số tập thể được đề xuất cơ bản dựa trên cấu trúc của
một PKI truyền thống nhằm bảo đảm các chức năng 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 trong xã hội (đơn vị
hành chính, cơ quan nhà nước, doanh nghiệp ). Trong mô hình này, đối
tượng ký‎ là một hay một nhóm thành viên của một tổ chức và đượ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 này.
Cũng trong mô hình này, CA là bộ phận có chức 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à 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 thể là thành viên
trong một tổ chức, mà CA là cơ quan chứng thực thuộc tổ chức này. Trong
mô hình này, chữ ký‎ của CA cùng với chữ ký‎ cá nhân của các 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 cách khác,

chữ ký tập thể trong mô hình này bao hàm chữ ký với tư cách cá nhân của
thực thể ký và chữ ký‎ của CA với tư cách của tổ chức mà đối tượng ký‎ là
thành viên thuộc tổ chức này. Nói chung, một CA trong mô hình được đề
xuất có những chức năng cơ bản như sau:
- 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 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
viên trong tổ chức bằng việc phát hành Chứng chỉ khóa công khai (PKC - Public
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
hoặc vi phạm chính sách an toàn của tổ chức.
- 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ý 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ổ chức
này.
Chữ ký‎ tập thể được hình thành trên cơ sở chữ ký‎ cá nhân của thực thể
ký (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 tổ chức đối với thông điệp dữ liệu cần ký‎. Có thể hình
thành chữ k‎‎ý tập thể ở 2 dạng như sau:
- Chữ k‎ý tập thể dạng kết hợp: ở dạng này CA k‎‎ý trực tiếp lên thông điệp
dữ liệu như các thành viên khác, chữ k‎ý của CA và chữ k‎ý cá nhân của
các đối tượng ký được kết hợp với nhau theo một qui tắc nhất định để
hình thành chữ ký tập thể.
- Chữ k‎ý tập thể dạng phân biệt: ở dạng này chữ ký‎ tập thể bao gồm chữ
ký‎ cá nhân của thực thể ký và chữ ký của CA là 2 thành phần phân biệt
hay tách biệt nhau.
Trong mô hình chữ ký‎ tập thể, chứng chỉ khóa công khai được sử dụng
để một tổ chức chứng nhận các đối tượng ký‎ là thành viên của nó. Một
chứng chỉ khóa công khai bao gồm những thông tin cơ bản và cơ chế hình
6

thành được chỉ ra trên Hình 1.3.




Cấu trúc cơ bản 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 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 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, trong Luận án sử dụng
thuật ngữ Thông tin nhận dạng (ID
i
) của đối tượng ký để đại diện cho các
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ỉ X.509 cho mô hình mới đề xuất.
Kiểm tra tính hợp pháp của đối tượng k‎ý là kiểm tra tính hợp lệ của
chứng chỉ khóa công khai mà đối tượng ký‎ được cấp, thực chất là kiểm tra
tính hợp lệ chữ ký‎ của CA trên chứng chỉ khóa công khai của thực thể này‎.
Dữ liệu đầu vào của thuật toán là chữ ký‎ của CA, khóa công khai của chủ
thể chứng chỉ và các thông tin khác như: Thông tin nhận dạng của chủ
thể, Kết quả đầu ra của thuật toán là sự khẳng định về nguồn gốc và tính
toàn vẹn của khóa công khai được sở hữu bởi chủ thể chứng chỉ.

Các thông tin nhận dạng
(ID
i
) của chủ thể: Tên, Tổ
chức và địa chỉ,
Khóa công khai của chủ
thể (y
i
)
Thông tin nhận dạng của
CA.

Khóa riêng của CA
(x
CA
)
Hình 1.3 Cấu trúc cơ bản và cơ chế hình thành
của một Chứng chỉ khóa công khai
Chữ ký số của CA
Trạng thái hoạt động của
chứng chỉ
Số hiệu của chứng chỉ
Thuật toán ký‎
7

Cơ chế kiểm tra tính hợp lệ của một chứng chỉ khóa công khai hay kiểm tra tính
hợp pháp của một đối tượng ký‎ là thành viên của một tổ chức được chỉ ra trên
Hình 1.4 như sau:



Chữ ký‎ tập thể được hình thành trên cơ sở chữ ký‎ cá nhân của thực thể
ký (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 tổ chức đối với thông điệp dữ liệu cần ký‎. Có thể hình
thành chữ k‎‎ý tập thể ở 2 dạng như sau:
- Chữ k‎ý tập thể dạng kết hợp: ở dạng này CA k‎‎ý trực tiếp lên thông
điệp dữ liệu như các thành viên khác, chữ k‎ý của CA và chữ k‎ý cá
nhân của các đối tượng ký được kết hợp với nhau theo một qui tắc
nhất định để hình thành chữ ký tập thể.
- Chữ k‎ý tập thể dạng phân biệt: ở dạng này chữ ký‎ tập thể bao gồm
chữ ký‎ cá nhân của thực thể ký và chữ ký của CA là 2 thành phần
phân biệt hay tách biệt nhau.

Trong Luận án, chữ k‎‎ý tập thể dạng phân biệt được sử dụng do có khả
năng chống lại các kiểu tấn công tập thể từ bên trong hệ thống. Cơ chế
hình thành chữ ký số tập thể dạng phân biệt được chỉ ra trên Hình 1.5.

Các thông tin nhận dạng
(ID
i
) của chủ thể: Tên, Tổ
chức và địa chỉ…
Khóa công khai của chủ
thể (y
i
).
Thông tin nhận dạng của
CA
Khóa công khai của CA
(y
CA
)
Hình 1.4 Cơ chế kiểm tra tính hợp lệ của một chứng chỉ khóa
công khai
Chữ ký số của CA
Trạng thái hoạt động của
chứng chỉ
Số hiệu của chứng chỉ
Công nhận/Từ chối
Thuật toán kiểm
tra
8





Chữ ký‎ cá nhân hình thành từ khóa bí mật của thực thể ký và thông điệp
dữ liệu cần k‎ý theo cơ chế được chỉ ra trên Hình 1.6 như sau:



Trong mô hình chữ k‎‎ý tập thể dạng phân biệt, chứng nhận của CA được
tạo ra từ khóa bí mật của CA, thông điệp dữ liệu được k‎ý và khóa công
khai của thực thể ký (một hay một nhóm các đối tượng k‎ý).
Cơ chế hình thành chứng nhận‎ của CA‎ được chỉ ra trên Hình 1.7.
Thông điệp dữ liệu
cần ký‎ (M )
Khóa bí mật của thực
thể ký (x
1
,x
2
,…,x
n
)
Chữ ký‎ cá nhân của thực thể ký‎
S
U
= f(M;x
1
,x
2
,…,x

n
)
)
Hình 1.6 Cơ chế hình thành chữ ký‎ cá nhân
Thuật toán ký
f(M;x
1
,x
2
,…,x
n
)

Chứng nhận‎ của CA‎
(S
CA
)
Chữ ký‎ số tập thể (S)
Hình 1.5 Chữ ký tập thể dạng phân biệt
Chữ ký‎ cá nhân của
thực thể ký‎ (S
u
)

Chữ ký‎ cá nhân của
thực thể ký‎ (S
U
)
Chứng nhận‎ của CA‎
(S

CA
)
9




Cơ chế kiểm tra chứng nhận của CA về việc một hay một nhóm đối
tượng k‎‎‎ý lên một thông điệp dữ liệu được chỉ ra trên Hình 1.8.



Cơ chế kiểm tra chữ k‎‎ý cá nhân được chỉ ra trên Hình 1.9. Kiểm tra chữ
k‎ý cá nhân cần phải được thực hiện sau khi kiểm tra chứng nhận của CA,
Thông điệp dữ liệu
cần thẩm tra (M)
Khóa công khai của
thực thể ký‎
(y
1
, y
2
,…,y
n
)
Công nhận/Từ chối
Hình 1.8 Cơ chế kiểm tra chứng nhận của CA
Thuật toán kiểm tra
V(M; y
1

,…y
n
; y
CA
, S
CA
)‎
Chứng nhận của CA
(S
CA
)
Khóa công khai của CA
(y
CA
)
Thông điệp dữ
liệu cần ký (M)
Khóa bí mật của CA
(x
CA
)
Hình 1.7 Cơ chế hình thành chứng nhận‎ của CA
Thuật toán ký
f(M; y
1
, ,y
n
; x
CA
)‎

Khóa công khai
của thực thể k‎‎ý
(y
1
, ,y
n
)
Chứng nhận của CA
S
CA
= f(M; y
1
, ,y
n
; x
CA
)
10

nếu chứng nhận của CA và chữ k‎ý cá nhân được công nhận hợp lệ thì tính
toàn vẹn của thông điệp dữ liệu cần thẩm tra được bảo đảm, đồng thời
khẳng định thông điệp dữ liệu này được k‎ý bởi các đối tượng đã được CA
chứng nhận là thành viên của tổ chức.



1.4 Kết luận Chƣơng 1
Các kết quả đã đạt được ở Chương 1 bao gồm:
- Thống nhất một số khái niệm và thuật ngữ liên quan được sử dụng trong Luận án.
- Đề xuất mô hình ứng dụng cho các lược đồ chữ ký số có thể áp dụng cho các

tổ chức xã hội như: các cơ quan hành chính nhà nước, các doanh nghiệp,
nhằm bảo đảm việc chứng thực cho các thông điệp dữ liệu trong các giao dịch
điện tử (Chính phủ điện tử, Thương mại điện tử, ) phù hợp với việc chứng
thực các văn bản, tài liệu, trong các thủ tục hành chính thực tế hiện nay.


CHƢƠNG 2
XÂY DỰNG LƢỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ DỰA TRÊN
HỆ MẬT RSA
Nội dung Chương 2 đề xuất xây dựng lược đồ chữ ký số dựa trên hệ
mật RSA theo mô hình chữ k‎ý tập thể đã được trình bày trong Chương 1.
2.1 Cơ sở toán học
2.1.1 Bài toán khai căn trên vành số nguyên Z
n

Cho cặp các số nguyên dương {n,t} với n là tích của hai số nguyên tố p
Thông điệp dữ liệu
cần thẩm tra (M)
Khóa công khai của
thực thể ký‎ (y
1
,…y
n
)‎
(y
1
, y
2
,…,y
n

)
Công nhận/Từ chối
Hình 1.9 Cơ chế kiểm tra tính hợp lệ của
chữ ký‎ cá nhân
Thuật toán kiểm tra‎
V(M; y
1
,…y
n
; S
U
)‎

Chữ ký‎ cá nhân (S
U
)
11

và q, còn t được chọn trong khoảng: 1 < t < (p1).(q1). Khi này bài toán
khai căn trên vành số nguyên Z
n
hay còn gọi là bài toán RSA
(n,t)
được phát
biểu như sau:
Bài toán RSA
(n,t)
: Với mỗi số nguyên dương y




n
*
, hãy tìm x thỏa mãn
phương trình sau: x
t

mod n = y (2.1)
Thuật toán để giải bài toán RSA
(n,t)
có thể được viết như một thuật toán
tính hàm RSA
(n,t)
(.) với biến đầu vào là y còn giá trị hàm là nghiệm x của
phương trình (2.1): x = RSA
(n,t)
(y)
Trong một hệ thống giao dịch điện tử với dịch vụ chứng thực số dùng
chung bộ tham số {n,t}, bài toán RSA
(n,t)
là khó theo nghĩa không thể thực
hiện được trong thời gian thực. Ở đó, mỗi thành viên U của hệ thống tự
chọn cho mình khóa bí mật x thỏa mãn: 1 < x < n, tính và công khai tham
số: y = x
t
mod n (2.2)
Chú ý:
(i) Mặc dù bài toán RSA
(n,t)
là khó, tuy nhiên không phải với mọi

yℤ
n
*
thì việc tính RSA
(n,t)
(y) đều khó, chẳng hạn những y = x
t
mod n với
x không đủ lớn thì bằng cách duyệt dần x = 1, 2, cho đến khi tìm được
nghiệm của (2.2) ta sẽ tìm được khóa bí mật x, do đó các tham số mật x
phải được lựa chọn sao cho việc tính RSA
(n,t)
(y) đều khó.
(ii) Với lựa chọn x nêu trên thì rõ ràng không có ai ngoài U biết được
giá trị x, vì vậy việc biết được x đủ để xác thực đó là U.
2.1.2 Hệ mật RSA
Hệ mật RSA là hệ mật khóa công khai đầu tiên được đề xuất và công bố
bởi Ron Rivest, Adi Shamir và Len Adleman vào năm 1977 tại Viện Công
nghệ Massachusetts Hoa Kỳ. Hệ mật này được xây dựng dựa trên tính khó
giải của các bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố,
bài toán logarit rời rạc trong modulo hợp số và bài toán RSA
(n,t)
trên đây,
nó bao gồm một thuật toán mật mã khóa công khai và một thuật toán chữ
k‎ý số mà việc thực hiện một trong 2 thuật toán này chỉ là sự hoán đổi vai
trò của khóa công khai hay khóa bí mật. Hiện tại, hệ mật RSA vẫn đang
được sử dụng phổ biến trong các giao dịch điện tử (Chính phủ điện tử,
Thương mại điện tử, ) do tính khả thi và hiệu quả thực hiện cao, nó được
đánh giá là an toàn khi các tham số {p,q} được lựa chọn hợp lý. Trên thực
tế, chưa có phương pháp tấn công hiệu quả nào phá vỡ được hệ mật này.

Như vậy, có thể coi hệ mật RSA là một đánh giá thực tế cho tính khó giải
của bài toán RSA
(n,t)
nêu trên.
12

2.2 Xây dựng lƣợc đồ ‎cơ sở
Lược đồ cơ sở ở đây xây dựng trên bài toán RSA
(n,t)
và được sử dụng để
phát triển các lược đồ chữ k‎ý tập thể theo mô hình đề xuất ở Chương 1.
2.2.1 Lược đồ cơ sở dạng tổng quát
Lược đồ cơ sở dạng tổng quát bao gồm các phương pháp hình thành các
tham số hệ thống và khóa, phương pháp hình thành chữ k‎ý và phương
pháp kiểm tra tính hợp lệ của chữ ký. Từ dạng tổng quát này, bằng cách
lựa chọn các tham số cụ thể sẽ cho phép tạo ra các lược đồ cơ sở phù hợp
cho việc xây dựng các lược đồ chữ k‎ý tập thể.
 Phương pháp hình thành tham số và khóa
Dữ liệu vào: p, q, t, x.
Kết quả: n, y.
Các bước thực hiện:
1. Tính: n = p.q;
2. Tính khóa công khai: y = x
t

mod n;
Chú thích:
(i) p, q: các số nguyên tố phân biệt.
(ii) x: khóa bí mật có giá trị trong khoảng: 1 < x < n.
(iii) t: số mũ có giá trị trong khoảng: 1 < t < (p - 1).(q - 1).

 Phương pháp hình thành chữ ký
Dữ liệu vào: n, t, x, k, M – thông điệp dữ liệu cần k‎ý.
Kết quả: (r,s) – chữ k‎ý của U lên M.
Các bước thực hiện:
1. Tính thành phần thứ nhất của chữ k‎‎ý: r = k
t
mod n;
2. Tính thành phần thứ 2 của chữ k‎‎ý: s = k
f
1
(M,r)
. x
f
2
(M,r)
mod n;
Chú thích:
(i) k: khóa bí mật ngắn hạn có giá trị trong khoảng: 1 < k < n.
(ii) f
1
(.), f
2
(.): các hàm của M và r.
 Phương pháp kiểm tra chữ ký
Dữ liệu vào: n, t, y, (r,s), M.
Kết quả: Khẳng định (r,s) là chữ k‎ý hợp lệ ((r,s) = true) hay (r,s) là
giả mạo và/hoặc M không còn toàn vẹn ((r,s) = false).
Các bước thực hiện:
1. Tính vế thứ nhất của phương trình kiểm tra:
u = s

t
mod n;
2. Tính vế thứ hai của phương trình kiểm tra:
v = r
f
1
(M,r)
. y
f
2
(M,r)
mod n;
3. Nếu (u = v) thì (r,s) = true , ngược lại thì (r,s) = false.
13

2.2.2 Lược đồ cơ sở LD 1.01
Lược đồ cơ sở - k‎ý hiệu LD 1.01, được hình thành từ lược đồ dạng tổng
quát với lựa chọn: f
1
(M,r) = 1, f
2
(M,r) = H(r||M)).
2.2.2.1 Thuật toán hình thành tham số và khóa.
Thuật toán 1.1: Hình thành tham số và khóa.
Input: p, q, x.
Output: n, t, y, H(.).
[1]. n ← p . q;
[2]. select H: {0,1}
*
→ Z

m
, m < n;
[3]. t ← [m/2] + 1;
[4]. y ← x
-t
mod n;
[5]. return {n,t,y,H(.)};
2.2.2.2 Thuật toán hình thành và kiểm tra chữ k‎ý.
Thuật toán 1.2: Hình thành chữ ký.
Input: n, t, x, k, H(.), M.
Output: (e,s).
[1]. r ← k
t

mod n;
[2]. e ← H(r||M);
[3]. s ← k . x
e
mod n;
[4]. return (e,s);

Thuật toán 1.3: Kiểm tra chữ ký.
Input: n, t, y, H(.), M, (e,s).
Output: (e,s) = true / false.
[1]. u ← s
t

. y
e
mod n ;

[2]. v ← H(u||M);
[3]. if (v = e) then {return true;}
else {return false;}
2.3 Xây dựng lƣợc đồ chữ ký số tập thể
2.3.1 Lược đồ chữ ký tập thể LD 1.02
2.3.1.1 Thuật toán hình thành các tham số hệ thống và khóa.
Giả sử nhóm ký‎ gồm m-thành viên: U = {U
i
| i=1,2, ,m}. Các thành viên
nhóm ký‎ có khóa bí mật là: K
S
= {x
i
| i=1,2, ,m} và các khóa công khai
tương ứng là: K
P
= {y
i
| i=1,2, ,m}.
Thuật toán 1.9a: Hình thành khóa của U = {U
i
| i = 1,2, ,m}.
Input: n, t, m, K
s
= {x
i
| i=1,2, m}, gcd (x
i
,n)=1.
Output: K

P
= {y
i
| i=1,2, ,m}.
[1]. for i = 1 to m do
14

[1.1]. y
i
← (x
i
)
-t
mod n;
[1.2]. K
P
[i] ← y
i
;
[2]. return K
P
;

Thuật toán 1.9b: Hình thành khóa của CA.
Input: n, t, x
CA
, gcd (x
CA
,n)=1
Output: y

CA
.
[1]. y
CA
← (x
CA
)
-t
mod n;
[2]. return (y
CA
);
2.3.1.2 Thuật toán chứng nhận và kiểm tra đối tượng k‎ý.
Thuật toán 1.10a: CA chứng nhận đối tượng ký U
i
(i = 1,2, ,m).
Input: n, t, ID
i
, y
i
, x
CA
.
Output: (u
i
,v
i
) – chứng nhận của CA đối với U
i
.

[1]. k
i
← H(x
CA
||y
i
||ID
i
);
[2]. r
i
← (k
i
)
t

mod n;
[3]. u
i
← H(r
i
||y
i
||ID
i
);
[4]. v
i
← k
i

. (x
CA
)
u
i
mod n;
[5]. return (u
i
,v
i
);

Thuật toán 1.10b: Kiểm tra tính hợp pháp của đối tượng k‎ý.
Input: n, t, y
i
, y
CA
, ID
i
, (u
i
,v
i
).
Output: (u
i
,v
i
) = true/false.
[1]. r

*
← (v
i
)
t
. (y
CA
)
u
i
mod n;
[2]. u ← H(r
*
||y
i
||ID
i
);
[3]. if (u = u
i
) then {return true;}
else {return false;}
2.3.1.3 Thuật toán hình thành và kiểm tra chữ k‎ý tập thể.
Thuật toán 1.11: Hình thành chữ ký cá nhân của một hay một
nhóm đối lên thông điệp dữ liệu M.
Input: n, t, M, m, K
s
= {x
i
| i=1,2, m}, K

P
= {y
i
| i=1,2, m}.
Output: (e,s) – chữ k‎ý của U
i
(i = 1, 2, ,m} hay U lên M.
[1]. for i = 1 to m do
[1.1]. k
i
← H(x
i
||M);
[1.2]. r
i
← (k
i
)
t

mod n;
[1.3]. send r
i
to {U
1
, U
2
, , U
i-1
, U

i+1
, , U
m
}, GM;
[2]. r ← 1; for i = 1 to m do
r ← r . r
i
mod n;
[3]. e ← H(r||M);
15

[4]. for i = 1 to m do
[4.1]. s
i
← k
i
. (x
i
)
e
mod n;
[4.2]. send s
i
to GM;
[5]. s ← 1; for i = 1 to m do
if ( r
i
= (s
i
)

t
. (y
i
)
e
mod n) then {s ← s . s
i
mod n;}
else return (0,0);
[6]. return (e,s);
Chú ‎ý: Trường hợp hình thành chữ k‎ý của một đối tượng lên thông điệp
dữ liệu cần k‎ý thì chỉ cần thực hiện Thuật toán 1.11 với lựa chọn m = 1.
Thuật toán 1.12: Hình thành chứng nhận của CA đối với chữ k‎ý cá
nhân của một hay một nhóm đối tượng k‎ý.

Input: n, t, m, x
CA
, K
P
= {y
i
| i=1,2, m}, (u
i
,v
i
), M, (e,s).
Output: (u
M
,v
M

) - chứng nhận của CA lên {M, (e,s)}.
[1]. y ← 1; for i = 1 to m do
[1.1]. r* ← (v
i
)
t
. (y
CA
)
u
i
mod n;
[1.2]. u ← H(r*||y
i
||ID
i
);
[1.3]. if (u ≠ u
i
) then return (0,0);
[1.4]. y ← y . y
i
mod n;
[2]. If ( e = 0 or s = 0) then {return (0,0);} else
[2.1]. u ← s
t
. y
e
mod n;
[2.2]. v ← H(u||M);

[2.3]. if (v ≠ e) then return (0,0);
[3]. k ← H(x
CA
||y||M);
[4]. r ← k
t

mod n;
[5]. u
M
← H(r||y||M);
[6]. v
M
← k . (x
CA
)
u
M
mod n;
[7]. return (u
M
,v
M
);
Chú ‎ý:
- Chữ k‎ý tập thể của một hay một nhóm đối tượng lên thông điệp dữ
liệu M là {(e,s), (u
M
,v
M

)}.
- Trường hợp (e,s) là chữ k‎ý của một đối tượng lên thông điệp dữ liệu
M thì chỉ cần thực hiện Thuật toán 1.12 với lựa chọn m = 1.

Thuật toán 1.13: Kiểm tra chữ ký tập thể của một hay một nhóm
đối tượng lên thông điệp dữ liệu M.
Input: n, t, m, y
CA
, K
P
= {y
i
| i=1,2, m},(u
i
,v
i
), M, {(e,s), (u
M
,v
M
)}.
Output: {(e,s), (u
M
,v
M
)} = true / false.
[1]. y ← 1; for i = 1 to m do
16

[1.1]. r* ← (v

i
)
t
. (y
CA
)
u
i
mod n;
[1.2]. u ← H(r
*
||y
i
||ID
i
);
[1.3]. if (u ≠ u
i
) then return false;
[1.4]. y ← y . y
i
mod n;
[2]. if (u
M
= 0 or v
M
= 0) then return false;
[2.1]. r
*
← (v

M
)
t
. (y
CA
)
u
M
mod n;
[2.2]. u ← H(r*||y||M);
[2.3]. if (u ≠ u
M
) then return false;
[3]. If ( e = 0 or s = 0) then {return (0,0);} else
[3.1]. u ← s
t
. y
e
mod n;
[3.2]. v ← H(u||M);
[3.3]. if (v = e) then return true;
else return false;
Chú ‎ý: Trường hợp chữ k‎ý tập thể {(e,s), (u
M
,v
M
)} là chữ k‎ý của một đối
tượng lên thông điệp dữ liệu M thì chỉ cần thực hiện Thuật toán 1.13 với
lựa chọn m = 1.


2.3.2 Lược đồ chữ ký tập thể LD 1.03
Lược đồ chữ ký‎ tập thể - ký‎ hiệu LD 1.03, cũng được phát triển từ lược
đồ cơ sở LD 1.01với các chức năng tương tự như lược đồ LD 1.02. Điểm
khác nhau giữa 2 lược đồ là: LD 1.02 không qui định thứ tự k‎ý của các
thành viên trong nhóm, còn ở LD 1.03 chữ ký‎ của nhóm được hình thành
từ 3 yếu tố:
- Thông điệp dữ liệu cần ký‎ M.
- Khóa bí mật của các thành viên K
S
.
- Thứ tự ký‎ của các thành viên trong nhóm‎.
Như vậy ở lược đồ LD 1.03, chữ k‎‎ý cá nhân của một nhóm đối tượng và do đó
là chữ k‎ý tập thể tương ứng chỉ có thể được tạo ra khi các thành viên thực hiện
đúng thứ tự k‎ý đã qui định. Điều đó cũng có nghĩa là, một chữ k‎ý tập thể do lược
đồ LD 1.03 tạo ra, khi được công nhận là hợp lệ thì nó khẳng định đồng thời các
yếu tố:
- Tính toàn vẹn của thông điệp dữ liệu được thẩm tra.
- Nguồn gốc của thông điệp dữ liệu ở 2 cấp độ cá nhân của đối tượng hay
nhóm nhóm đối tượng k‎ý và tổ chức mà các đối tượng ký là thành viên của
nó.
- Trình tự k‎ý của các thành viên trong nhóm ký.
Lược đồ LD 1.03 được xây dựng với các thuật toán hình thành tham số
và khó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‎‎ý, thuật toán hình thành chứng nhận của CA đối với chữ k‎ý của
một hay một nhóm đối tượng ký lên một thông điệp dữ liệu, thuật toán
17

kiểm tra chữ k‎ý tập thể là hoàn toàn như các thuật toán tương ứng của lược
đồ LD 1.02. Chỉ có thuật toán hình thành chữ k‎ý cá nhân của một hay một
nhóm đối tượng lên thông điệp dữ liệu được xây dựng mới nhằm bảo đảm

qui định về thứ tự k‎ý của các thành viên trong nhóm, đây là điểm khác biệt
duy nhất giữa 2 lược đồ này. Vì vậy, mục này (2.3.2) chỉ trình bày Thuật
toán hình thành chữ ký cá nhân của một hay một nhóm đối tượng k‎ý lên
một thông điệp dữ liệu.
Giả sử nhóm ký‎ gồm m thành viên: U = {U
i
| i=1,2, ,m}. Các thành viên nhóm ký‎
có khóa bí mật là: K
S
= {x
i
| i=1,2, ,m} và các khóa công khai tương ứng là:
K
P
= {y
i
| i=1,2, ,m}.
Trong thực tế, thứ tự k‎‎ý của các thành viên trong nhóm được qui định bởi vai trò,
chức trách (chức vụ, quyền hạn, ) của mỗi thành viên trong tổ chức. Không làm mất
tính tổng quát, ở lược đồ mới đề xuất giả thiết rằng thứ tự ký‎ của các thành viên được
qui định là chỉ số i gán cho các tham số cá nhân (x
i
, y
i
, r
i
, s
i
, ) cuả mỗi thành viên
trong nhóm. Cụ thể là, thành viên có chỉ số i = 1 sẽ là người ký‎ đầu tiên, còn thành

viên có chỉ số i = m sẽ ký‎ sau cùng.
Thuật toán 1.16: Hình thành chữ ký của một nhóm đối tượng lên thông
điệp dữ liệu M theo dạng k‎ý tuần tự của các thành viên
Input: n, t, M, m, K
S
= {x
i
| i=1,2, ,m}, K
P
= {y
i
| i=1,2, ,m}.
Output: (e,s) – chữ k‎ý U lên M.
[1]. for i = 1 to m do
[1.1]. k
i
← H(x
i
||M);
[1.2]. r
i
← (k
i
)
t

mod n;
[1.3]. send r
i
to {U

1
, U
2
, , U
i-1
, U
i+1
, , U
m
}
[2]. r ← 1; for i = 1 to m do
r ← r . r
i
mod n;
[3]. e ← H(r||M);
[4]. s
0
← 1; Y
0
← 1; R
0
← 1;
[5]. for i = 1 to m do
[5.1]. Y
i-1
← y
1
. y
2
y

i-1
mod n;
[5.2]. R
i-1
← r
1
. r
2
r
i-1
mod n;
[5.3]. if (R
i-1
≠ ((s
i-1
)
t
. (Y
i-1
)
e
mod n)) then return (0,0);
[5.4]. s
i
← s
i-1
. k
i
. (x
i

)
e
mod n;
[5.5] if (i < m) then {send s
i
to U
i+1
} else s = s
i
;
[6]. return (e,s);

2.4 Kết luận Chƣơng 2
Các kết quả đã đạt được ở Chương 2 bao gồm 3 lược đồ chữ ký số mới, bao
gồm một lược đồ cơ sở (LD 1.01) và 2 lược đồ chữ k‎ý tập thể (LD 1.02, LD 1.03).
18

Trong đó, lược đồ cơ sở‎ LD 1.01 là một dạng lược đồ chữ k‎ý số mới, được xây
dựng trên cơ sở bài toán khai căn trên vành số nguyên Z
n=p.q
với {p,q} là các số
nguyên tố phân biệt. Hai lược đồ chữ k‎‎ý tập thể là kết quả được phát triển từ lược
đồ cơ sở theo mô hình ứng dụng được đề xuất ở Chương 1.

CHƢƠNG 3
XÂY DỰNG LƢỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ DỰA TRÊN
HỆ MẬT ELGAMAL

Nội dung Chương 3 đề xuất xây dựng lược đồ chữ ký tập thể dựa trên
hệ mật ElGamal theo mô hình ứng dụng đã được trình bày ở Chương 1.

3.1 Cơ sở toán học
3.1.1 Bài toán logarit rời rạc trên trường hữu hạn nguyên tố Z
P

Cho p là một số nguyên tố và g là phần tử sinh của nhóm Z
P
*. Khi đó
bài toán logarit rời rạc trên trường Z
P
hay còn gọi là bài toán DLP
(p,g)
được
phát biểu như sau:
Bài toán DLP
(p,g)
: Với mỗi số nguyên dương y



p
*
, hãy tìm x thỏa
mãn phương trình sau: g
x
mod p = y (3.1)
Giải thuật cho bài toán logarit rời rạc với các tham số {p, g} công khai
có thể được viết như một thuật toán tính hàm DLP
(p,g)
(.) với biến đầu vào
là y còn giá trị hàm là nghiệm x của phương trình (3.1): x = DLP

(p,g)
(y)
3.1.2 Hệ mật ElGamal
Hệ mật ElGamal được xây dựng dựa trên tính khó của bài toán DLP
(p,g)
nói trên và
do T. El Gamal đề xuất vào năm 1985. Không như RSA, hệ mật này bao gồm 2 thuật
toán mật mã khóa công khai và chữ k‎‎ý số độc lập. Các chuẩn chữ k‎ý số DSA của Hoa
Kỳ và GOST R34.10-94 của Liên bang Nga đều là các biến thể của thuật toán chữ k‎ý
số El Gamal và được gọi chung là các thuật toán chữ k‎ý số họ ElGamal. Trên thực tế,
chưa có phương pháp tấn công hiệu quả nào phá vỡ được hệ mật ElGamal nói chung
và các thuật toán chữ k‎ý số họ ElGamal nói riêng nếu các tham số của nó được lựa
chọn phù hợp. Cũng như hệ mật RSA với bài toán khai căn trên vành Z
n
, có thể coi
hệ mật ElGamal là một đánh giá thực tế cho tính khó giải của bài toán DLP
(p,g)
.
3.2 Xây dựng lƣợc đồ cơ sở
Lược đồ cơ sở đề xuất ở đây được xây dựng dựa trên bài toán logarit rời rạc
theo cùng nguyên tắc với các thuật toán chữ k‎ý số họ ElGamal (DSA, GOST
R34.10-94). Lược đồ này sẽ được sử dụng để xây dựng các lược đồ chữ ký tập thể
theo mô hình ứng dụng được đề xuất ở Chương 1.
3.2.1 Lược đồ cơ sở dạng tổng quát
 Phương pháp hình thành tham số và khóa
Dữ liệu vào: p, q, x.
19

Kết quả: g, y, H(.).
Các bước thực hiện:

1. Tính phần tử sinh g của Z
p
*: g = h
(p-1)/q
mod p, với: 1 < h < p;
2. Tính khóa công khai: y = g
-x
mod p;
3. Chọn hàm băm H: {0,1}
*
→ Z
q
;
Chú thích:
(i) p, q: 2 số nguyên tố thỏa mãn q|(p-1).
(ii) x: khóa bí mật của đối tượng ký.
 Phương pháp hình thành chữ ký
Dữ liệu vào: p, q, g, x, k, M.
Kết quả: (r,s).
Các bước thực hiện:
1. Hình thành phần thứ nhất của chữ k‎‎ý theo công thức:
r = (g
k
mod p) mod q;
2. Hình thành phần thứ nhất của chữ k‎‎ý theo công thức:
s = k.f
1
(M,r)
-
1

+ x.f
2
(M,r) mod q;
Chú thích:
(i) M: thông điệp dữ liệu cần k‎ý.
(ii) (r,s): chữ ký lên M của đối tượng sở hữu {x,y}.
 Phương pháp kiểm tra chữ ký
Dữ liệu vào: p, q, g, y, M, (r,s).
Kết quả: Khẳng định (r,s) là chữ k‎ý hợp lệ ((r,s) = true) hay (r,s) là
giả mạo và/hoặc M không còn toàn vẹn ((r,s) = false).
Các bước thực hiện:
1. Tính giá trị: u = (g
s.f
1
(M,r)
. y
f
1
(M,r).f
2
(M,r)
mod p) mod q;
2. Nếu u = r thì (r,s) = true, ngược lại: (r,s) = false.
3.2.2 Lược đồ cơ sở LD 2.01
Lược đồ cơ sở - k‎ý hiệu LD 2.01, được hình thành từ lược đồ cơ sở
dạng tổng quát với lựa chọn: f
1
(M,r) = H(M), f
2
(M,r) = r.

3.2.2.1 Thuật toán hình thành tham số và khóa
Thuật toán 2.1a: Hình thành các tham số hệ thống.
Input: lp, lq: độ dài (tính theo bit) của số nguyên tố p, q.
Output: p, q, g, H(.).
[1]. select p, q: len(p) = lp, len(q)= lq, q|(p-1);
[2]. select h  ℤ
p
*
;
[3]. g ← h
(p-1)
/q
mod p
[4]. if (g = 1) then goto [2];
[5]. select H: {0,1}
*
→ Z
q
;
20

[6]. return {p, q, g, H(.)};
Chú thích: len(.): hàm cho kết quả là kích thước theo bit của một
giá trị số.
Thuật toán 2.1b: Hình thành khóa.
Input: p, q, g, x.
Output: y.
[1]. y ← g
-x
mod p;

[2]. return (y);
3.2.2.2 Thuật toán hình thành chữ k‎ý
Thuật toán 2.2: Hình thành chữ ký.
Input: p, q, g, x, k , M, H(.).
Output: (r,s).
[1]. e ← H(M);
[2]. r ← (g
k
mod p) mod q;
[3]. s ← k. e
-
1
+ x. r mod q;
[4]. return (r,s);
3.2.2.3 Thuật toán kiểm tra chữ k‎ý
Thuật toán 2.3: Kiểm tra chữ ký.
Input: p, q, g, y, H(.), M, (r,s).
Output: (r,s) = true / false.
[1]. e ← H(M);
[2]. u ← (g
s.e
. y
r.e
mod p) mod q;
[3]. if (u = r) then {return true;}
else {return false;}
3.3 Xây dựng lƣợc đồ chữ ký số tập thể
Hai lược đồ chữ ký‎ tập thể đề xuất ở đây - k‎ý hiệu LD 2.02 và LD
2.03, được phát triển từ lược đồ cơ sở LD 2.01 theo mô hình đề xuất ở
Chương 1 và có cùng nguyên tắc xây dựng với các lược đồ chữ k‎ý tập

thể LD 1.02 và LD 1.03 đã được trình bày ở Chương 2.
3.3.1 Lược đồ chữ ký tập thể LD 2.02
3.3.1.1 Thuật toán hình thành tham số và khóa.
Các tham số hệ thống được hình thành theo phương pháp của DSA hoặc GOST
R34.10-94.
Thuật toán 2.6a: Hình thành khóa của U = {U
i
| i = 1, 2, ,n}.
Input: p, g, n, K
S
= {x
i
| i = 1,2,…,n}.
Output: K
P
= {y
i
| i = 1, 2, ,n}.
[1]. for i = 1 to n do
[1.1]. y
i
← g
-x
i

mod p;
21

[1.2]. K
P

[i] ← y
i
;
[2]. return K
P
;

Thuật toán 2.6b: Hình thành khóa của CA.
Input: p, g, x
CA
.
Output: y
CA
.
[1]. y
CA
← g
-x
CA
mod p;
[2]. return (y
CA
);
3.3.1.2 Thuật toán chứng nhận và kiểm tra đối tượng k‎ý.
Thuật toán 2.7a: CA chứng nhận đối tượng ký.
Input: ID
i
, y
i
, x

CA
.
Output: (u
i
,v
i
) – chứng nhận của CA đối với U
i
.
[1]. k
i
← H(x
CA
||y
i
||ID
i
);
[2]. u
i
← (g
k
i

mod p) mod q;
[3]. e ← H(y
i
||ID
i
);

[4]. v
i
← k
i
. e
-
1
+ x
CA
. u
i
mod q;
[5]. return (u
i
,v
i
);

Thuật toán 2.7b: Kiểm tra tính hợp pháp của đối tượng k‎ý.
Input: y
i
, y
CA
, ID
i
, (u
i
,v
i
).

Output: (u
i
,v
i
) = true / false.
[1]. e ← H(y
i
||ID
i
);
[2]. u ← (g
v
i
.e

. (y
CA
)
u
i
.e
mod p) mod q;
[3]. if (u = u
i
) then {return true;}
else {return false;}
3.3.1.3 Thuật toán hình thành và kiểm tra chữ k‎ý tập thể.
Thuật toán 2.8: Hình thành chữ ký cá nhân của một hay một
nhóm đối tượng k‎ý lên thông điệp dữ liệu M.
Input: M, n, K

S
= {x
i
| i = 1, 2, ,n}, K
P
= {y
i
| i = 1, 2, ,n}.
Output: (r,s) – chữ k‎ý của U
i
(i = 1, 2, ,n) hay U lên M.
[1]. for i = 1 to n do
[1.1]. k
i
← H(x
i
||M);
[1.2]. r
i
← g
k
i
mod p;
[1.3]. send r
i
to {U
1
, U
2
, , U

i-1
, U
i+1
, , U
n
};
[2]. r ← 1; for i = 1 to n do
r ← r . r
i
mod n;
[3]. for i = 1 to n do
[3.1]. e ← H(M);
22

[3.2]. s
i
← k
i
. e
-
1
+ x
i
. r mod q;
[4]. s ← 1; for i = 1 to n do
[4.1]. if (r
i
≠ g
s
i

.e
. (y
i
)
r
i
.e
mod p) then return (0,0);
[4.2]. s ← s . s
i
mod q;
[5]. return (r,s);

Thuật toán 2.9: Hình thành chứng nhận của CA đối với chữ
ký cá nhân của một hay một nhóm đối tượng k‎ý.
Input: p, q, g, x
CA
, n, K
P
= {y
i
| i = 1, 2, ,n}, (u
i
,v
i
), {M, (r,s)}.
Output: (u
M
,v
M

) – chứng nhận của CA đối với {M, (r,s)}.
[1]. y ← 1; for i = 1 to n do
[1.1]. e ← H(y
i
||ID
i
);
[1.2]. u ← (g
v
i
.e
. (y
CA
)
u
i
.e
mod p) mod q;
[1.3]. if (u ≠ u
i
) then return (0,0);
[1.4]. y ← y. y
i
mod p;
[2]. if ( r = 0 or s = 0) then {return (0,0);} else
[2.1]. e ← H(M);
[2.2]. u ← (g
s.e

. y

r.e

mod p) mod q;
[2.3]. if (u ≠ r) then {return (0,0);}
[3]. k ← H(x
CA
||y||M);
[4]. u
M
← (g
k
mod p) mod q;
[5]. e ← H(y||M);
[6]. v
M
← k. e
-1
+ x
CA
. u
M
mod q;
[7]. return (u
M
,v
M
);

Thuật toán 2.10: Kiểm tra chữ ký tập thể của một hay một
nhóm đối tượng lên thông điệp dữ liệu M.

Input: p, q, g, n, y
CA
, K
P
= {y
i
| i = 1, 2, ,n}, M, (r,s), (u
M
,v
M
).
Output: {(r,s), (u
M
,v
M
)} = true / false.
[1]. y ← 1; for i = 1 to n do
[1.1]. e ← H(y
i
||ID
i
);
[1.2]. u ← (g
v
i
.e
. (y
CA
)
u

i
.e
mod p) mod q;
[1.3]. if (u ≠ u
i
) then return (0,0);
[1.4]. y ← y . y
i
mod p;
[2]. if (u
M

= 0 or v
M
= 0) then return false;
[2.1]. e ← H(y||M);
[2.2]. u ← (g
v
M
.e
. (y
CA
)
u
M
.e
mod p) mod q;
[2.3]. if (u ≠ u
M
) then return false;

23

[3]. If ( r = 0 or s = 0) then {return (0,0);} else
[3.1]. e ← H(M);
[3.2]. u ← (g
s.e

. y
r.e

mod p) mod q;
[3.3]. if (u = r) then {return true;}
else {return false;}
3.3.2 Lược đồ chữ ký tập thể LD 2.03
Lược đồ LD 2.03 được xây dựng với các thuật toán hình thành tham số và khó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‎‎ý, thuật toán
chứng nhận của CA đối với chữ k‎ý cá nhân của một hay một nhóm đối tượng, thuật
toán kiểm tra chữ k‎ý tập thể hoàn toàn như các thuật toán tương ứng của lược đồ LD
2.02. Riêng thuật toán hình thành chữ k‎ý cá nhân của một nhóm đối tượng lên một
thông điệp dữ liệu được xây dựng mới với qui định về thứ tự k‎ý của các thành viên
trong nhóm.
Giả sử nhóm ký‎ gồm n-thành viên: U = {U
i
| i=1,2, ,n}. Các thành viên nhóm ký‎
có khóa bí mật là: K
S
= {x
i
| i=1,2, ,n} và các khóa công khai tương ứng là:
K

P
= {y
i
| i=1,2, ,n}.
Thuật toán 2.13: Hình thành chữ ký cá nhân của một nhóm đối tượng k‎ý.
Input: p, q, g, M, n, K
S
= {x
i
| i = 1, 2, ,n}, K
P
= {y
i
| i = 1, 2, ,n}.
Output: (r,s) – chữ ký của U
i
(i = 1, 2, ,n) hay U lên M.
[1]. for i = 1 to n do
[1.1]. k
i
← H(x
i
||M);
[1.2]. r
i
← g
k
i

mod p;

[1.3]. send r
i
to {U
1
, U
2
, , U
i-
1
, U
i+
1
, , U
n
}
[2]. r ← 1; for i = 1 to n do
r ← r . r
i
mod p;
[3]. r ← r mod q;
[4]. e ← H(M);
[5]. s
0
← 0, Y
0
← 1, R
0
← 1; for i = 1 to n do
[5.1]. Y
i-

1

← y
1
. y
2
y
i-
1
mod p;
[5.2]. R
i-
1
← r
1
. r
2
r
i-
1

mod p;
[5.3]. if (R
i-1
≠ (g
s
i-
1
.e
. (Y

i-
1
)
r.e
mod p)) then return (0,0);
[5.4]. s
i
← s
i-
1

+ k
i
. e
-
1
+ x
i
. r mod q;
[5.5] if (i < n) then {send s
i
to U
i+1
} else s = s
i
;
[6]. return (r,s);
3.4 Kết luận Chƣơng 3
Các kết quả đã đạt được ở Chương 3 bao gồm 3 lược đồ chữ ký số mới, trong
đó có 1 lược đồ cơ sở xây dựng trên bài toán logarit rời rạc trong trường hữu hạn

nguyên tố theo cùng nguyên tắc với các lược đồ chữ k‎ý họ ElGamal như các
chuẩn chữ ký số DSS và GOST R34.10-94. Lược đồ này có ưu điểm so với các
24

lược đồ thuộc họ El Gamal là chỉ cần sử dụng một khóa bí mật duy nhất để hình
thành chữ ký, do đó đã khắc phục được yếu điểm của các lược đồ họ ElGamal khi
khóa thứ hai bị sử dụng lặp lại. Hai lược đồ chữ ký tập thể là kết quả phát triển từ
lược đồ cơ sở theo mô hình đã đề xuất ở Chương 1.

KẾT LUẬN
1. Những kết quả đã đạt đƣợc của Luận án:
- Đề xuất mô hình ứng dụng chữ ký số nhằm đáp ứng các yêu cầu về chứng
thực các thông điệp dữ liệu trong các giao dịch điện tử, có thể áp dụng phù hợp
trong các tổ chức xã hội, cơ quan hành chính nhà nước, các doanh nghiệp,
- Xây dựng 6 lược đồ chữ ký số, trong đó có 2 lược đồ cơ sở (LD 1.01, LD
2.01) và 4 lược đồ chữ ký tập thể (LD 1.02, LD 1.03, LD 2.02, LD 2.03) theo mô
hình mới đề xuất.
2. Những đóng góp mới của Luận án:
- Mô hình chữ ký số tập thể: đây là mô hình ứng dụng chữ ký số nhằm đáp ứng
yêu cầu xác thực nguồn gốc và tính toàn vẹn cho các thông điệp dữ liệu ở nhiều
cấp độ khác nhau, ứng dụng phù hợp trong các tổ chức xã hội, các cơ quan hành
chính nhà nước, các doanh nghiệp, Kết quả này được thể hiện ở công trình số
[4],[5] của Luận án.
- Lược đồ cơ sở LD 1.01: đây là một dạng thuật toán chữ k‎ý số mới được xây
dựng trên cơ sở bài toán khai căn trên vành Z
n=p.q
, trong đó {p,q} là các số nguyên
tố phân biệt. Kết quả này được thể hiện ở công trình số [5] của Luận án.
- Lược đồ cơ sở LD 2.01: được xây dựng trên cơ sở bài toán logarit rời rạc trên
trường hữu hạn nguyên tố theo cùng nguyên tắc với các lược đồ chữ k‎ý họ

ElGamal (DSS, GOST R34.10-94). Lược đồ này có ưu điểm so với các lược đồ
họ El Gamal là chỉ cần sử dụng một khóa bí mật duy nhất để hình thành chữ ký,
do đó đã khắc phục được yếu điểm của các lược đồ họ ElGamal khi khóa thứ hai
bị sử dụng lặp lại. Kết quả này được thể hiện ở công trình số [6],[7],[8] của Luận
án.
- Các lược đồ chữ ký số tập thể: được phát triển từ các lược đồ cơ sở (LD
1.01, LD 2.01) theo mô hình ứng dụng mới đề xuất, có thể đáp ứng yêu cầu chứng
thực các thông điệp dữ liệu trong các giao dịch điện tử áp dụng cho các tổ chức xã
hội, cơ quan hành chính nhà nước, các doanh nghiệp, Kết quả này được thể hiện
ở công trình số [4],[5],[6] của Luận án.

×