Xem mẫu
- 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:
Bên phát Bên thu
Nguồn Điều Kênh Giải Nhận
tin chế truyền điều chế tin
Hình 1.1 Cấu trúc của một hệ truyền tin cơ bản
Đứ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.
- 4
Bên phát
Nguồn Mã Điều chế
tin mật
Kênh
truyền
Bên thu
Giải điều Mã Nhận
chế mật tin
Hình 1.2 Cấu trúc của một hệ truyền tin an toàn
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
- 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.
Khóa riêng của CA
Các thông tin nhận dạng (xCA)
(IDi) của chủ thể: Tên, Tổ
chức và địa chỉ,...
Khóa công khai của chủ
thể (yi)
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ý
Thông tin nhận dạng của
CA.
Chữ ký số của 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
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 (IDi) 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ỉ.
- 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:
Các thông tin nhận dạng Khóa công khai của CA
(IDi) của chủ thể: Tên, Tổ (yCA)
chức và địa chỉ…
Khóa công khai của chủ
thể (yi).
Trạng thái hoạt động của
chứng chỉ
Thuật toán kiểm
Số hiệu của chứng chỉ
tra
Thông tin nhận dạng của
CA
Chữ ký số của CA Công nhận/Từ chối
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ý 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.
- 8
Chữ kýcá nhân của Chứng nhậncủa CA
thực thể ký(Su) (SCA)
Chữ kýsố tập thể (S)
Chữ kýcá nhân của Chứng nhậncủa CA
thực thể ký(SU) (SCA)
Hình 1.5 Chữ ký tập thể dạng phân biệt
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:
ý
Thông điệp dữ liệu Khóa bí mật của thực
cần ký (M ) thể ký (x1,x2,…,xn)
Thuật toán ký
f(M;x1,x2,…,xn)
Chữ kýcá nhân của thực thể ký
SU = f(M;x1,x2,…,xn)
)
Hình 1.6 Cơ chế hình thành chữ kýcá nhân
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ậncủa CAđược chỉ ra trên Hình 1.7.
- 9
Khóa bí mật của CA
(xCA)
Khóa công khai
của thực thể k
ý
(y1,..,yn) Thuật toán ký
f(M; y1,..,yn; xCA)
Thông điệp dữ
liệu cần ký (M)
Chứng nhận của CA
SCA = f(M; y1,..,yn; xCA)
Hình 1.7 Cơ chế hình thành chứng nhậncủa CA
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.
ý
Khóa công khai của CA
(yCA)
Khóa công khai của
thực thể ký
(y1, y2,…,yn)
Thông điệp dữ liệu Thuật toán kiểm tra
cần thẩm tra (M) V(M; y1,…yn; yCA, SCA)
Chứng nhận của CA
(SCA)
Công nhận/Từ chối
Hình 1.8 Cơ chế kiểm tra chứng nhận của CA
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,
ý
- 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.
Khóa công khai của
thực thể ký(y1,…yn)
(y1, y2,…,yn)
Thông điệp dữ liệu
cần thẩm tra (M)
Thuật toán kiểm tra
V(M; y1,…yn; SU)
Chữ kýcá nhân (SU)
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
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 Zn
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
- 11
và q, còn t được chọn trong khoảng: 1 < t < (p1).(q1). Khi này bài toán
khai căn trên vành số nguyên Zn 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
t
phương trình sau: x 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
t
số: y = x 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
t
yℤn* thì việc tính RSA(n,t)(y) đều khó, chẳng hạn những y = x 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 đồ ơ sở c
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;
t
2. Tính khóa công khai: y = x 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:
t
1. Tính thành phần thứ nhất của chữ k : r = k mod n;
ý
f (M,r) f (M,r)
2. Tính thành phần thứ 2 của chữ k : s = k 1 . x 2
ý 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) f1(.), f2(.): 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 = st mod n;
2. Tính vế thứ hai của phương trình kiểm tra:
f (M,r) f (M,r)
v= r1 .y2 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: f1(M,r) = 1, f2(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}* → Zm , m < n;
[3]. t ← [m/2] + 1;
-t
[4]. y ← x 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).
t
[1]. r ← k mod n;
[2]. e ← H(r||M);
[3]. s ← k . xe 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 ← st . ye 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 = {Ui| i=1,2,...,m}. Các thành viên
nhóm ký có khóa bí mật là: KS = {xi| i=1,2,...,m} và các khóa công khai
tương ứng là: KP = {yi| i=1,2,...,m}.
Thuật toán 1.9a: Hình thành khóa của U = {Ui| i = 1,2,...,m}.
Input: n, t, m, Ks = {xi| i=1,2,...m}, gcd (xi,n)=1.
Output: KP = {yi| i=1,2,...,m}.
[1]. for i = 1 to m do
- 14
-t
[1.1]. yi ← (xi) mod n;
[1.2]. KP[i] ← yi;
[2]. return KP;
Thuật toán 1.9b: Hình thành khóa của CA.
Input: n, t, xCA , gcd (xCA,n)=1
Output: yCA.
-t
[1]. yCA ← (xCA) mod n;
[2]. return (yCA);
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ý Ui (i = 1,2,..,m).
Input: n, t, IDi, yi, xCA.
Output: (ui,vi) – chứng nhận của CA đối với Ui.
[1]. ki ← H(xCA||yi||IDi);
t
[2]. ri ← (ki) mod n;
[3]. ui ← H(ri||yi||IDi);
u
[4]. vi ← ki . (xCA) i mod n;
[5]. return (ui,vi);
Thuật toán 1.10b: Kiểm tra tính hợp pháp của đối tượng k . ý
Input: n, t, yi, yCA, IDi, (ui,vi).
Output: (ui,vi) = true/false.
t u
[1]. r* ← (vi) . (yCA) i mod n;
[2]. u ← H(r*||yi||IDi);
[3]. if (u = ui) 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, Ks = {xi| i=1,2,...m}, KP = {yi| i=1,2,...m}.
Output: (e,s) – chữ k của Ui (i = 1, 2,..,m} hay U lên M.
ý
[1]. for i = 1 to m do
[1.1]. ki ← H(xi||M);
t
[1.2]. ri ← (ki) mod n;
[1.3]. send ri to {U1, U2,..., Ui-1, Ui+1,..., Um}, GM;
[2]. r ← 1; for i = 1 to m do
r ← r . ri mod n;
[3]. e ← H(r||M);
- 15
[4]. for i = 1 to m do
e
[4.1]. si ← ki . (xi) mod n;
[4.2]. send si to GM;
[5]. s ← 1; for i = 1 to m do
t e
if ( ri = (si) . (yi) mod n) then {s ← s . si 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, xCA, KP = {yi| i=1,2,...m}, (ui,vi), M, (e,s).
Output: (uM,vM) - chứng nhận của CA lên {M, (e,s)}.
[1]. y ← 1; for i = 1 to m do
t u
[1.1]. r* ← (vi) . (yCA) i mod n;
[1.2]. u ← H(r*||yi||IDi);
[1.3]. if (u ≠ ui) then return (0,0);
[1.4]. y ← y . yi mod n;
[2]. If ( e = 0 or s = 0) then {return (0,0);} else
t e
[2.1]. u ← s . y mod n;
[2.2]. v ← H(u||M);
[2.3]. if (v ≠ e) then return (0,0);
[3]. k ← H(xCA||y||M);
t
[4]. r ← k mod n;
[5]. uM ← H(r||y||M);
u
[6]. vM ← k . (xCA) mod n;
M
[7]. return (uM,vM);
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), (uM,vM)}.
- 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, yCA, KP = {yi| i=1,2,...m},(ui,vi), M, {(e,s), (uM,vM)}.
Output: {(e,s), (uM,vM)} = true / false.
[1]. y ← 1; for i = 1 to m do
- 16
t u
[1.1]. r* ← (vi) . (yCA) i mod n;
[1.2]. u ← H(r*||yi||IDi);
[1.3]. if (u ≠ ui) then return false;
[1.4]. y ← y . yi mod n;
[2]. if (uM = 0 or vM = 0) then return false;
t uM
[2.1]. r* ← (vM) . (yCA) mod n;
[2.2]. u ← H(r*||y||M);
[2.3]. if (u ≠ uM) then return false;
[3]. If ( e = 0 or s = 0) then {return (0,0);} else
t e
[3.1]. u ← s . y 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), (uM,vM)} 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 KS.
- 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 = {Ui| i=1,2,...,m}. Các thành viên nhóm ký
có khóa bí mật là: KS = {xi| i=1,2,...,m} và các khóa công khai tương ứng là:
KP = {yi| 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 (xi, yi, ri, si, ...) 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, KS = {xi| i=1,2,..,m}, KP = {yi| i=1,2,..,m}.
Output: (e,s) – chữ k U lên M.
ý
[1]. for i = 1 to m do
[1.1]. ki ← H(xi||M);
t
[1.2]. ri ← (ki) mod n;
[1.3]. send ri to {U1, U2,..., Ui-1, Ui+1,..., Um}
[2]. r ← 1; for i = 1 to m do
r ← r . ri mod n;
[3]. e ← H(r||M);
[4]. s0 ← 1; Y0 ← 1; R0 ← 1;
[5]. for i = 1 to m do
[5.1]. Yi-1 ← y1 . y2 .... yi-1 mod n;
[5.2]. Ri-1 ← r1 . r2 .... ri-1 mod n;
t e
[5.3]. if (Ri-1 ≠ ((si-1) . (Yi-1) mod n)) then return (0,0);
e
[5.4]. si ← si-1 . ki . (xi ) mod n;
[5.5] if (i < m) then {send si to Ui+1 } else s = si ;
[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 Zn=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ố ZP
Cho p là một số nguyên tố và g là phần tử sinh của nhóm ZP*. Khi đó
bài toán logarit rời rạc trên trường ZP 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
x
mãn phương trình sau: g 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 Zn, 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:
(p-1)/q
1. Tính phần tử sinh g của Zp*: g = h mod p, với: 1 < h < p;
-x
2. Tính khóa công khai: y = g mod p;
3. Chọn hàm băm H: {0,1}* → Zq ;
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:
ý
k
r = (g mod p) mod q;
2. Hình thành phần thứ nhất của chữ k theo công thức:
ý
-1
s = k.f1(M,r) + x.f2(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:
s.f (M,r) f (M,r).f2(M,r)
1. Tính giá trị: u = (g 1 . y 1 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: f1(M,r) = H(M), f2(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* ;
(p-1)/q
[3]. g←h mod p
[4]. if (g = 1) then goto [2];
[5]. select H: {0,1}* → Zq ;
- 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.
-x
[1]. y ← g 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);
k
[2]. r ← (g 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);
s.e r.e
[2]. u ← (g . y 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 = {Ui| i = 1, 2,..,n}.
Input: p, g, n, KS = {xi| i = 1,2,…,n}.
Output: KP = {yi| i = 1, 2,..,n}.
[1]. for i = 1 to n do
-x
[1.1]. yi ← g i mod p;
nguon tai.lieu . vn