Tải bản đầy đủ (.doc) (63 trang)

Xây dựng chương trình tạo và xác thực chữ ký số theo chuẩn DSS

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 (1.22 MB, 63 trang )

LỜI CAM ĐOAN
Tơi xin cam đoan khóa luận tốt nghiệp “Xây dựng chương trình tạo và
xác thực chữ ký số theo chuẩn DSS” là cơng trình nghiên cứu của bản thân
tơi; các số liệu sử dụng trong khóa luận là trung thực, chính xác; các tài liệu
tham khảo có nguồn gốc trích dẫn rõ ràng; kết quả nghiên cứu khơng sao chép
vi phạm bản quyền của bất kỳ cơng trình nào.
Tơi xin chịu mọi trách nhiệm và hình thức kỷ luật theo quy định cho lời
cam đoan của tôi.
Hà Nội, tháng 7 năm 2019
Sinh viên


MỤC LỤC
MỞ ĐẦU..........................................................................................................1
CHƯƠNG 1. TỔNG QUAN VỀ CHỮ KÝ SỐ.......................................6
1.1. Giới thiệu chung về chữ ký số

6

1.1.1. Khái niệm 6
1.1.2. Vai trò của chữ ký số 6
1.1.3. Sơ đồ tổng quan 7
1.2. Cơ sở hình thành chữ ký số 8
1.2.1. Mật mã học và mật mã khóa cơng khai
1.2.2. Hàm băm 10
Kết luận chương 1 13

8

CHƯƠNG 2. CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.............................14
2.1. Giới thiệu chung



14

2.1.1. Khởi tạo ban đầu 16
2.1.2. Tạo chữ ký số
18
2.1.3. Xác thực chữ ký số
2.2. Thuật toán ký số DSA20

19

2.2.1. Giới thiệu 20
2.2.2. Mơ hình 26
2.2.3. Đánh giá 28
2.3. Thuật tốn ký số RSA29
2.3.1. Giới thiệu
2.3.2. Mơ hình
2.3.3. Đánh giá
Kết luận chương 2

29
30
32
33

CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH TẠO VÀ XÁC THỰC
CHỮ KÝ SỐ THEO CHUẨN DSS..............................................................34


3.1. Xây dựng chương trình thiết lập và xác thực chữ ký số sử dụng

thuật toán DSA

34

3.1.1. Giao diện và các chức năng cơ bản 34
3.1.2. Xây dựng chương trình thiết lập chữ ký
36
3.1.3. Xây dựng chương trình xác thực chữ ký số 40
3.1.4. Kết quả thực nghiệm 41
3.2. Xây dựng chương trình thiết lập và xác thực chữ ký số sử dụng
thuật toán RSA

45

3.2.1. Giao diện và các chức năng cơ bản 45
3.2.2. Xây dựng chương trình thiết lập chữ ký số 47
3.2.3. Xây dựng chương trình xác thực chữ ký số 48
3.2.4. Kết quả thử nghiệm
51
Kết luận chương 3 53
KẾT LUẬN....................................................................................................54


DANH MỤC TỪ VIẾT TẮT
CA
DSA
FIPS
NIST
PKCS
SP

SHA

Certification Authority
Digital Signature Algorithm
Federal Information Processing Standard
National Institute of Standards and Technology
Public Key Cryptography Standard
Special Publication
Secure Hash Algorithm


DANH MỤC HÌNH VẼ
Hình 1.1. Phân loại giải thuật mã hóa theo số lượng khóa..............................9
Hình 2.1. Quy trình tạo và xác thực chữ ký số theo chuẩn DSS.....................15
Hình 2.2. Quy trình khởi tạo ban đầu.............................................................16
Hình 2.3. Quy trình tạo chữ ký số...................................................................18
Hình 2.4. Quy trình xác thực chữ ký số..........................................................19
Hình 2.5. Mơ hình sơ đồ chữ ký số DSA.........................................................26
Hình 2.6. Lược đồ chữ ký số RSA...................................................................30
Hình 3.1. Giao diện tạo khố lược đồ chữ ký số DSA....................................34
Hình 3.2. Giao diện ký lược đồ chữ ký số DSA..............................................35
Hình 3.3. Giao diện xác thực chữ ký số lược đồ DSA....................................35
Hình 3.4. Thơng báo tạo khóa thành cơng......................................................40
Hình 3.5. Thơng tin cần ký bằng lược đồ DSA...............................................43
Hình 3.6. Giao diện khi tạo chữ ký thành cơng..............................................43
Hình 3.7. Giao diện thơng báo chữ ký tồn vẹn khơng bị thay đổi................44
Hình 3.8. Thơng tin sau khi bị chỉnh sửa........................................................44
Hình 3.9. Giao diện chữ ký đã bị thay đổi......................................................44
Hình 3.10. Giao diện tạo khóa theo lược đồ chữ ký số RSA...........................45
Hình 3.11. Giao diện ký theo lược đồ chữ ký số RSA.....................................46

Hình 3.12. Giao diện xác thực theo lược đồ chữ ký số RSA...........................46
Hình 3.13. Giao diện thơng báo chữ ký tồn vẹn khơng thay đổi...................52
Hình 3.14. Giao diện thông báo chữ ký bị thay đổi........................................52


DANH MỤC BẢNG BIỂU
Bảng 1.1. So sánh giữa chữ ký số và chữ ký viết tay........................................7
Bảng 1.2. So sánh các hàm băm trong chuẩn băm an toàn............................12
Bảng 2.1. Sự khác nhau giữa các phiên bản chữ ký số của DSS....................14
Bảng 2.2. Thời gian bảo mật...........................................................................22
Bảng 2.3. Lựa chọn hàm băm cho cặp (L, N).................................................22


1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Trong sự phát triển của xã hội loài người, đặc biệt kể từ khi mạng máy
tính ra đời việc trao đổi thơng tin trở nên thuận lợi hơn, nhu cầu trao đổi thông
tin ngày càng lớn và đa dạng. Các tiến bộ của khoa học kĩ thuật phát triển
không ngừng được ứng dụng để nâng cao chất lượng và lưu lượng truyền tin.
Bảo mật thông tin trở nên quan trọng hơn bao giờ hết, con người cần có tư
duy mới về bảo mật thông tin. Trong các phương pháp bảo mật thông tin, mật
mã học được xem là phương pháp mang lại hiệu quả và kinh tế nhất.
Trong những năm gần đây sự phát triển của khoa học máy tính và
Internet càng cho thấy được tầm quan trọng của mật mã thông tin. Mật mã
thông tin được ứng dụng trong nhiều lĩnh vực của đời sống xã hội như: an
ninh, quân sự, quốc phòng… cho đến các lĩnh vực thương mại điện tử. Ngày
nay, ngồi việc ứng dụng mật mã trong mã hóa và giải mã, mật mã được ứng
dụng để xác thực nguồn gốc của thông tin, xác thực người sở hữu được mã
hóa. Chữ ký số ra đời đáp ứng những yêu cầu đó.

Các vấn đề chữ ký số thường xuyên được nghiên cứu, để tìm ra những
sơ đồ chữ ký số phù hợp với thực tiễn. Trong các chuẩn chữ ký số trên thế
giới, chuẩn chữ ký số Hoa Kỳ được ứng dụng rộng rãi trên tồn thế giới. Tính
đến thời điểm tháng 6/2009, NIST đã đưa ra 4 phiên bản chuẩn chữ ký số
FIPS PUB 186, FIPS PUB 186-1, FIPS PUB 186-2, FIPS PUB 186-3. Khoa
học công nghệ ngày càng phát triển, máy móc thiết bị ngày càng trở nên
thông minh hơn, việc phá vỡ các sơ đồ chữ ký trong các phiên bản cũ là có
thể, do vậy vấn đề đặt ra là cần có 1 chuẩn mới để đảm bảo an toàn chữ ký số
trong tương lai. FIPS PUB 186-4 ra đời vào 7/2013 đáp ứng các yêu cầu mới
của thực tiễn [13-15].
Đặc biệt, trong thời điểm hiện tại, Việt Nam đang xây dựng thương
mại điện tử, chính phủ điện tử. Việc ứng dụng chữ ký số hiện đem lại nhiều


2
hiệu quả thiết thực, góp phần bảo mật thơng tin, đơn giản hóa thủ tục hành
chính, góp phần xây dựng thành cơng thương mại điện tử, chính phủ điện tử
trong thời gian tới.
Xuất phát từ những lý do trên đây em lựa chọn đề tài “Xây dựng
chương trình tạo và xác thực chữ ký số theo chuẩn DSS” làm đề tài khóa luận
tốt nghiệp, dưới sự hướng dẫn của Giảng viên – Thạc sĩ Lưu
2. Tình hình nghiên cứu liên quan đến đề tài
Hiện nay có rất nhiều nghiên cứu về chữ ký số, cũng như ứng dụng của
nó nhằm bảo đảm tính bảo mật, tính tồn vẹn và tính chống chối bỏ của các
thông tin giao dịch trên mạng Internet. Tại Học viện ANND, cũng đã có một
số nghiên cứu liên quan tới vấn đề chữ ký số như:
- “Nghiên cứu và ứng dụng chữ ký điện tử trong trao đổi thông tin
dạng file giữa hai máy trên mạng dựa trên hệ mã khóa cơng khai RSA”, tác
giả Nguyễn Xn Thùy (Khóa luận, 2003).
- “Xây dựng chương trình bảo mật dữ liệu số bằng hệ mật mã và chữ

ký điện tử”, của tác giả Đỗ Thị Thu Huyền (Khóa luận, 2010).
Một số nghiên cứu khác có liên quan tới lĩnh vực này như:
- “Nghiên cứu một số kỹ thuật mã hóa, xác thực và ứng dụng trong
việc truyền số liệu tại Cục A18”, của tác giả Nguyễn Hồng Đức (Khóa
luận, 2007).
- “Nghiên cứu hạ tầng mã hóa khóa cơng khai (Public key
infrastructure - PKI) triển khai chữ ký số trong giao dịch trực tuyến giữa A18
và PA18”, của tác giả Nguyễn Hồng Tuấn Anh (Khóa luận, 2008).
- “Nghiên cứu, tìm hiểu cơ sở hạ tầng mật mã khóa cơng khai và ứng
dụng”, tác giả Nguyễn Văn Dũng (Khóa luận, 2009).
- “Nghiên cứu, lập trình ứng dụng thử nghiệm một số thuật tốn mã
hóa dữ liệu áp dụng cho hộ chiếu điện tử Việt Nam”, tác giả Nguyễn Thanh
Hải (Khóa luận, 2011).
- “Kỹ thuật mã hoá DES trong bảo mật thơng tin”, tác giả Phạm Thế
Hùng (Khóa luận, 2014).
Các cơng trình này đã nghiên cứu một số thuật tốn mã hóa cơ bản có
thể áp dụng vào trong việc bảo mật dữ liệu và tạo chữ ký số, đã có một số


3
cơng trình có ứng dụng vào trong thực tế. Tuy nhiên, chưa có cơng trình nào
đề cập tới việc nghiên cứu một chuẩn chữ ký số được công bố và áp dụng tại
các nước tiên tiến. Ngoài ra, việc ứng dụng tại một số cơng trình mới chỉ tiếp
cận được ở mức thử nghiệm với những bộ số nhỏ. Chính vì vậy, với mong
muốn làm rõ hơn những vấn đề cơ sở khoa học và ứng dụng của chữ ký số
theo một chuẩn cụ thể, tác giả mạnh dạn nghiên cứu chuẩn chữ ký số DSS của
Hoa Kỳ và viết chương trình ứng dụng theo chuẩn này.
3. Mục tiêu và nhiệm vụ nghiên cứu
- Mục tiêu nghiên cứu:
Nghiên cứu về chuẩn chữ ký số DSS của Hoa Kì và các lược đồ chữ ký

số được chỉ ra trong chuẩn DSS. Từ đó xây dựng chương trình tạo và xác thực
chữ ký số theo chuẩn DSS
- Nhiệm vụ nghiên cứu: Để đạt được mục tiêu nghiên cứu tác giả, giải
quyết lần lượt các nhiệm vụ sau:
+ Nghiên cứu, hệ thống hóa lý luận có liên quan đến chữ ký số và cơ sở
hình thành chữ ký số.
+ Nghiên cứu chuẩn chữ ký số DSS của Hoa Kỳ, sơ đồ chữ ký số được
đề cập trong chuẩn.
+ Xây dựng, cài đặt, thử nghiệm chương trình tạo và xác thực chữ ký số
theo chuẩn DSS.
4. Đối tượng và phạm vi nghiên cứu đề tài
- Đối tượng:
+ Các phương pháp mã hóa.
+ Chuẩn chữ ký số DSS của Hoa Kỳ.
- Phạm vi nghiên cứu đề tài:
Đề tài tập trung nghiên cứu các phương pháp mã hóa là cơ sở nền tảng
để xây dựng chữ ký số, chuẩn chữ ký số DSS của Hoa Kỳ, và xây dựng
chương trình tạo và xác thực chữ ký số theo chuẩn DSS.
5. Phương pháp nghiên cứu
Để đạt được mục tiêu nghiên cứu của đề tài, tác giả sử dụng tổng hợp
các cách tiếp cận và phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu tài liệu:


4
+ Phương pháp phân tích và tổng hợp lý thuyết: tác giả thực hiện phân
tích, tổng hợp các bài báo khoa học có liên quan đến vấn đề nghiên cứu được
đăng trên các tạp chí, hội nghị uy tín trên thế giới được cộng đồng nghiên cứu
sử dụng như:
Science direct: />IEEE Xplore Digital Library: .

The ACM Digital Library: />Google Scholar: .
+ Phương pháp phân loại và hệ thống hóa lý thuyết: Qua q trình phân
tích tổng hợp lý thuyết, các thông tin thu thập được tác giả hệ thống và sắp
xếp một cách khoa học, sử dụng chúng để nhận định, đánh giá, các phương
pháp đã có, từ đó đề ra phương pháp mới tối ưu hơn cho bài toán đặt ra.
- Phương pháp nghiên cứu thực tiễn:
+ Phương pháp chuyên gia: Thu thập khoa học, tranh thủ những ý kiến
đóng góp, định hướng từ những chuyên gia nghiên cứu có kinh nghiệm trong
lĩnh vực tối ưu hóa và khoa học máy tính để có góc nhìn và định hướng
nghiên cứu phù hợp; tham gia các buổi hội thảo có chủ đề về mật mã thơng
tin, mã hóa khóa cơng khai, chữ ký số.
+ Phương pháp thực nghiệm khoa học: Tác giả sử dụng các phương
pháp đã có để áp dụng cho bài toán đặt ra, phương pháp này giúp kiểm tra
tính chính xác và tính khả thi của những thuật toán được đề xuất trong đề tài,
là cơ sở để đánh giá tính hiệu quả của phương pháp được đề xuất.
6. Ý nghĩa khoa học và ý nghĩa thực tiễn của đề tài
Ý nghĩa khoa học:
Đề tài góp phần bổ sung lý luận về chữ ký số, giải quyết vấn đề bảo
mật trong lưu trữ thông tin, truyền thông tin.
Mở ra hướng nghiên cứu mới về chữ ký số trong môi trường học tập.
Ý nghĩa thực tiễn:
Việc nghiên cứu về chuẩn chữ ký số DSS của Mỹ, từ đó xây dựng
chương trình tạo và xác thực chữ ký số sẽ mở ra hướng nghiên cứu tăng mức
độ bảo mật cho các bài toán lớn trong thực tiễn


5
Trong q trình lưu trữ, trao đổi thơng tin có thể kiểm sốt được thơng
tin đã bị sửa đổi hay chưa. Và chữ ký số là một chủ đề ứng dụng nhiều trong
thời đại xây dựng chính phủ điện tử.

7. Cấu trúc đề tài
Ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo và phụ lục,
đề tài được cấu trúc gồm 3 chương:
Chương 1: Tổng quan về chữ ký số
Chương 2: Chuẩn chữ ký số DSS – Hoa Kỳ
Chương 3: Xây dựng chương trình tạo và xác thực chữ ký số theo
chuẩn DSS

CHƯƠNG 1. TỔNG QUAN VỀ CHỮ KÝ SỐ
1.1. Giới thiệu chung về chữ ký số
1.1.1. Khái niệm
Theo Nghị định 130/2018/NĐ-CP quy định chi tiết thi hành luật giao
dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số ngày 27/9/2018:
Chữ ký số là một dạng chữ ký điện tử được tạo ra bằng sự biến đổi một
thông điệp dữ liệu sử dụng hệ thống mật mã khơng đối xứng, theo đó, người
có được thơng điệp dữ liệu ban đầu và khóa cơng khai của người ký có thể
xác định được chính xác:
- Việc biến đổi nêu trên được tạo ra bằng đúng khóa bí mật tương ứng
với khóa cơng khai trong cùng 1 cặp khóa;
- Sự tồn vẹn nội dung của thơng điệp dữ liệu kể từ khi thực hiện việc
biến đổi nêu trên.


6
1.1.2. Vai trò của chữ ký số
Chữ ký số dùng cho các văn bản số, cho biết toàn bộ văn bản đã được
ký bởi người ký, và người khác có thể xác minh điều này. Chữ ký số tương tự
như chữ ký viết tay thơng thường, đảm bảo:
- Tính bảo mật: Chỉ những người có quyền mới có thể đọc được
nội dung;

- Tính tồn vẹn: Kẻ trung gian làm biến đổi nội dung thơng điệp trong
q trình gửi đi, người nhận biết được thơng điệp đã bị sửa đổi;
- Tính nhận biết: xác định được danh tính của người gửi thơng điệp;
- Tính chống chối bỏ: người gửi thơng điệp khơng thể phủ nhận được
thơng điệp đó là của họ.
Tuy nhiên, chữ ký số và chữ ký viết tay thông thường có các điểm khác
nhau cơ bản sau:
Bảng TỔNG QUAN VỀ CHỮ KÝ SỐ.1. So sánh giữa chữ ký số và chữ ký viết
tay
Vấn đề ký

Chữ ký viết tay
Chữ ký số
Là một phần vật lý của tài Không gắn kiểu vật lý vào tài

liệu
Vấn đề kiểm So sánh với chữ ký mẫu

liệu
Thơng qua một thuật tốn

tra chữ ký
kiểm tra cơng khai
Bản sao tài Không đồng nhất với bản gốc Đồng nhất với bản gốc
liệu
1.1.3. Sơ đồ tổng quan
Một thuật toán ký số thường gồm: quy trình tạo chữ ký và xác thực chữ
ký. Người ký sử dụng quy trình tạo chữ ký để tạo ra 1 chữ ký trên thông điệp,
người xác thực sử dụng quy trình xác thực để xác thực chữ ký số.
Một sơ đồ chữ ký số [2, 3, 5] là bộ 5 thành phần (P, A, K, S, V)

trong đó:
- P: tập hữu hạn các thơng điệp có thể;


7
- A: tập hữu hạn chữ ký có thể;
- K: tập hữu hạn các khóa có thể;
- S: tập thuật tốn ký có dạng sig k : P � A ;
- V: tập thuật tốn xác thực chữ ký có thể dạng
Verk : P �A � {true, false}
sig k : P � A, verk : P �A � {true, false} là những hàm sao cho mỗi

thông điệp x

P và mỗi chữ ký y

A:

{

true, y = sig ( x )
ver ( x, y ) = false, y �sig ( x)

1.2. Cơ sở hình thành chữ ký số
1.2.1. Mật mã học và mật mã khóa cơng khai
1.2.1.1. Mật mã học
a) Khái niệm
Mật mã học gắn liền với quá trình chuyển đổi văn bản thuần túy thơng
thường thành văn bản khó hiểu và ngược lại. Mật mã học ứng dụng trong cả
lưu trữ và truyền dữ liệu sao cho chỉ có những người được phép mới có thể

đọc và xử lý nó. Mật mã trước đây đồng nghĩa với mã hóa một cách hiệu quả
nhưng ngày nay mật mã chủ yếu dựa trên lý thuyết tốn học và thực hành
khoa học máy tính [5].
b) Chức năng
Mật mã học hiện đại giúp đảm bảo các chức năng sau đây:
- Tính bí mật: chỉ những người có thẩm quyền mới được truy nhập vào
thơng tin;
- Tính tồn vẹn: thơng tin và dữ liệu chỉ có thể được sửa bởi những
người có thẩm quyền;
- Tính xác thực: người gửi (hoặc người nhận) có thể chứng minh đúng
họ là người gửi (hoặc người nhận);
- Tính chống chối bỏ: người gửi hoặc người nhận không thể chối bỏ
việc đã gửi hoặc nhận thông tin.


8
c) Sơ đồ tổng quan
Hệ mật mã là bộ gồm 5 thành phần (P, C, K, E, D) trong đó:
- P (Plaintext): bản rõ (dữ liệu gốc);
- C (Ciphertext): bản mã (dữ liệu đã được mã hóa);
- K (Key): khóa là thơng tin dùng cho quy trình giải mã và mã hóa;
- E (Encryption): mã hóa là q trình biến đổi thơng tin từ dạng ban đầu
có thể hiểu được thành dạng “không thể hiểu được”;
- D (Decryption): giải mã là q trình khơi phục lại thơng tin ban đầu
sau khi đã được mã hóa.
d) Phân loại
Theo SP800-57 [9] bàn về quản lý khóa của NIST phát hành tháng 1
năm 2016, chia thuật tốn mã hóa thành 3 loại căn cứ vào số lượng khóa được
sử dụng giải thuật: hàm băm, mật mã khóa cơng khai và mật mã khóa bí mật.
- Mật mã khóa bí mật (SKC): Sử dụng một khóa duy nhất cho cả mã

hóa và giải mã; cịn được gọi là mã hóa đối xứng. Chủ yếu được sử dụng
để bảo mật;
- Mật mã khóa cơng khai (PKC): sử dụng một khóa để mã hóa và một
khóa khác để giải mã; cịn được gọi là mã hóa bất đối xứng. Chủ yếu được sử
dụng để xác thực, chống chối bỏ;
- Hàm băm: khơng u cầu khóa cho hoạt động cơ bản, tạo ra một giá
trị băm nhỏ từ một thông điệp lớn theo 1 chiều (nghĩa là rất khó để tìm một
đầu vào khi biết trước đầu ra). Hàm băm chủ yếu được sử dụng để đảm bảo
tính tồn vẹn của thơng tin.


9

Hình TỔNG QUAN VỀ CHỮ KÝ SỐ.1. Phân loại giải thuật mã hóa theo số
lượng khóa
1.2.1.2. Mật mã khóa cơng khai
Mật mã khóa cơng khai được cho là sự phát triển mới quan trọng nhất
về mật mã trong 300 - 400 năm qua. PKC hiện đại lần đầu tiên được mô tả
công khai bởi Standford Martin Hellman và nghiên cứu sinh Whitfield Diffie
vào năm 1976. Bài báo của họ mô tả một hệ thống mật mã hai khóa, trong đó
hai bên có thể tham gia giao tiếp an tồn qua kênh liên lạc khơng an tồn mà
khơng phải chia sẻ một chìa khóa bí mật. PKC phụ thuộc vào sự tồn tại của
hàm một chiều, hoặc hàm toán học dễ tính tốn trong khi chiều ngược lại của
nó tương đối khó tính.
PKC sử dụng hai khóa có liên quan đến nhau về mặt tốn học, mặc dù
khi biết thơng tin một khóa thì cũng khơng dễ dàng để xác định khóa kia. Một
khóa được sử dụng để mã hóa bản rõ và khóa cịn lại được sử dụng để giải mã
bản mã. Điểm quan trọng ở đây không quan trọng khóa nào được sử dụng
trước mà cả hai khóa được yêu cầu để quá trình hoạt động.



10
Các thuật tốn mã hóa khóa cơng khai được sử dụng ngày nay để trao
đổi khóa hoặc chữ ký số: SHA thơng thường là SHA-1 với RSA, thuật tốn
chữ ký số DSA, mật mã đường cong Eliptic…
1.2.2. Hàm băm
1.2.2.1. Giới thiệu
Hàm băm là một loại mật mã thứ ba bên cạnh mật mã khóa cơng khai
và mật mã khóa bí mật, cái mà chúng ta gọi là mật mã không khóa. Hàm băm
là giải thuật sinh ra các giá trị băm có kích thước cố định tương ứng với khối
dữ liệu đầu vào có kích thước tùy ý. Đơi khi mã băm được gọi là bản tóm tắt
thơng điệp hay vân tay điện tử, đóng vai trị như một khóa để phân biệt các
khối dữ liệu. Khi có một sự thay đổi nhỏ trong chuỗi đầu vào thì giá trị băm
sẽ thay đổi.

h( M ) : D � R
Trong đó:
- h(M): hàm băm
- D: miền xác định
- R: miền giá trị của hàm băm
Hàm băm h(M) không phải là đơn ánh, vì số lượng phần tử D lớn hơn
miền giá trị R. Như vậy sẽ có tồn tại cặp đầu vào khác nhau mà cho cùng giá
trị băm. Giả sử, miền xác định của h(M) có chiều dài là t, R có chiều dài cố
định là n bit ( t > n ). Nếu h(M) là ngẫu nhiên và giá trị đầu ra có xác suất như
nhau thì có khoảng 2t- n giá trị đầu vào ánh xạ vào mỗi giá trị đầu ra. Xác suất
để 2 giá trị đầu vào có chiều dài bằng nhau ánh xạ vào cùng 1 giá trị đầu ra là

2- n . Nếu n đủ lớn, thì xác suất này là rất nhỏ. Như vậy, khi biết giá trị băm thì
rất khó để tìm ra một giá trị đầu vào có cùng giá trị băm đó nếu chọn h(M)
thích hợp, n đủ lớn [13].

Một hàm băm tốt phải có các thuộc tính sau:


11
- Tính một chiều: cho trước một đầu ra y, khơng thể tìm được M’ sao
cho h( M ' ) = y ;
- Tính chống xung đột yếu: Với mọi giá trị đầu vào M cho trước, khơng
thể tìm được bất cứ một giá trị M ' �M nào sao cho h( M ) = h( M ' ) ;
- Tính chống xung đột mạnh: Khơng thể tìm được 2 giá trị đầu vào M,
M’ khác nhau sao cho chúng có cùng hàm băm tức là h( M ) = h( M ' ) .
1.2.2.2. Chuẩn hàm băm an toàn
Chuẩn hàm băm an toàn SHS-FIPS PUB 180 được NIST đưa ra lần đầu
vào 11/5/1993, phiên bản thứ 2 là FIPS PUB 180-2 được đưa ra ngày
1/8/2002, phiên bản thứ 3 FIPS PUB 180-3 đưa ra 10/2008 . FIPS PUB 180-1
chỉ ra giải thuật hàm băm SHA-1; FIPS PUB 180-2 chỉ rõ 4 giải thuật hàm
băm an toàn SHA-1, SHA-256, SHA-384, SHA-512; FIPS PUB 180-3 chỉ ra
5 chuẩn SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 [12].
Các giải thuật đều là hàm băm 1 chiều và xử lý thông điệp để tạo ra
một thông điệp thu gọn và đảm bảo được tính tồn vẹn của thơng điệp, điều
này rất có ích cho việc tạo và xác thực chữ ký số, cũng như trong việc tạo các
số ngẫu nhiên. Mỗi giải thuật đều gồm 2 bước: tiền xử lý và tính tốn băm.
Bước tiền xử lý gồm các công việc như độn tin, chia khối, thiết lập giá trị
khởi tạo dùng cho tính tốn băm. Bước tính tốn băm tạo ra 1 danh sách
thơng điệp từ bản tin độn và sử dụng cơ chế đó với các hàm, hằng và các phép
toán để tạo ra một chuỗi các giá trị băm. Giá trị băm cuối cùng được tạo ra
sau bước tính tốn băm sẽ là thông điệp rút gọn.
Bảng dưới đây chỉ ra các đặc điểm cơ bản của bốn giải thuật hàm băm
an toàn.
Bảng TỔNG QUAN VỀ CHỮ KÝ SỐ.2. So sánh các hàm băm trong chuẩn
băm an toàn



12
Giải thuật

SHA-1
SHA-224
SHA-256
SHA-384
SHA-512

Kích
Kích
thước
thước
thơng
khối (bits)
điệp (bits)

< 264
< 264
< 264
< 2128
< 2128

512
512
512
1024
1024


Kích
thước từ
(bits)
32
32
32
64
64

Kích
thước
thơng
điệp thu
gọn (bits)
160
224
256
384
512

Bit an
tồn (bits)

80
112
128
192
256


Kết luận chương 1
Trong chương 1, khóa luận đã chỉ ra vai trò của chữ ký số như đảm bảo
tính bảo mật, tồn vẹn, nhận biết và chống chối bỏ; cũng như sơ đồ tổng quan
của một lược đồ chữ ký số. Chương một cịn trình bày cơ sở hình thành chữ
ký số, về mật mã khóa cơng khai và hàm băm.
Chữ ký số với những tính năng ưu việt, đóng một vai trị quan trọng
trong kế hoạch phát triển thương mại điện tử và Chính Phủ điện tử nói chúng,
trong đó có chữ ký số Hoa Kỳ nói riêng. Chữ ký số Hoa Kỳ được áp dụng
rộng rãi trên tồn thế giới. Do đó, trong chương 2 khóa luận trình bày về
chuẩn chữ ký số DSS của Hoa Kỳ.


13
CHƯƠNG 2. CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ
2.1. Giới thiệu chung
Nhằm mục đích tăng cường việc sử dụng các dịch vụ thương mại điện
tử của quốc gia cũng như trong các hoạt động giao dịch an toàn trên mạng,
NIST đã đưa ra chuẩn chữ ký số DSS vào ngày 19/5/1994 và được chấp nhận
là tiêu chuẩn áp dụng trong các giao dịch an tồn trên mạng từ ngày
1/12/1994.
Tính tới thời điểm hiện tại, chuẩn chữ ký số có các phiên bản: FIPS
PUB 186, FIPS PUB 186-1 công bố ngày 15/12/1998, FIPS PUB 186-2 đưa
ra ngày 27/1/2000, FIPS PUB 186-3 được đưa ra vào tháng 6/2009, phiên bản
mới nhất hiện nay là FIPS PUB 186-4 công bố 7/2013 [13-15].
Sự khác nhau giữa các phiên bản chữ ký số đã có của DSS được biểu
diễn dưới đây:
Bảng CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.3. Sự khác nhau giữa các phiên
bản chữ ký số của DSS
Phiên bản
FIPS PUB 186


FIPS PUB 186-1
FIPS PUB 186-2
FIPS PUB 186-3
FIPS PUB 186-4

Cặp (L, N) (bits)
L

[512, 1024]

N ∈ [159, 160]
L ∈ [512, 1024]
N ∈ [159, 160]
L ∈ [512, 1024]
N ∈ [159, 160]
L = 1024, N = 160
L = 2048, N = 224
L = 3072, N = 256
L = 1024, N = 160
L = 2048, N = 224
L = 2048, N = 256
L = 3072, N = 256

Nội dung
giải thuật
DSA

Chuẩn hàm
băm sử dụng

Chưa có

DSA

FIPS 180-1

DSA
ECDSA
DSA
RSA
ECDSA
DSA
RSA
ECDSA

FIPS 180-1
FIPS 180-2
FIPS 180-3


14
Sơ đồ tổng quan việc tạo và xác thực chữ ký số theo chuẩn DSS được
minh họa như sau:

Hình CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.2. Quy trình tạo và xác thực chữ
ký số theo chuẩn DSS
Một thuật toán ký số gồm quy trình tạo chữ ký và xác thực chữ ký.
Người ký sử dụng quy trình Tạo chữ ký để tạo ra 1 chữ ký số trên thông điệp;
người xác thực sử dụng quy trình Xác thực để xác thực chữ ký số. Mỗi người
ký sở hữu 1 cặp khóa bao gồm: khóa cơng khai, khóa bí mật. Khóa bí mật sử

dụng trong quy trình tạo chữ ký. Chủ sở hữu cặp khóa là thực thể duy nhất
được ủy quyền sử dụng khóa riêng để tạo chữ ký số. Để ngăn chặn các thực
thể khác tự xưng là chủ sở hữu cặp khóa và sử dụng khóa bí mật để tạo chữ
ký lừa đảo thì khóa bí mật phải được giữ thật cẩn thận. Khóa cơng khai được
sử dụng trong q trình xác minh chữ ký. Khóa cơng khai khơng cần phải giữ
bí mật, nhưng tính tồn vẹn của nó phải được duy trì. Bất cứ ai cũng có thể
xác minh chính xác thơng điệp đã được ký bằng cách sử dụng khóa cơng khai.
Trong cả q trình tạo và xác minh chữ ký, thông điệp đã được ký được
chuyển đổi thành một chuỗi có độ dài cố định bằng hàm băm đã được công
nhận. Cả thông điệp gốc và chữ ký số đều được cung cấp cho người xác thực.


15
Người xác thực u cầu đảm bảo khóa cơng khai được sử dụng để xác thực
chữ ký thực sự thuộc sở hữu tuyên bố đã tạo chữ ký điện tử, một ràng buộc
của danh tính chủ sở hữu và khóa công khai của chủ sở hữu sẽ được thực hiện
để cung cấp sự đảm bảo này. Người xác thực cũng yêu cầu đảm bảo rằng chủ
sở hữu cặp khóa thực sự sở hữu khóa bí mật được liên kết với khóa cơng khai
và khóa cơng khai là khóa chính xác về mặt tốn học.
Để có được các đảm bảo này, người xác thực được đảm bảo rằng chữ
ký số có thể được xác thực chính xác bằng khóa cơng khai, và chữ ký số là
hợp lệ hay không (nghĩa là, chủ sở hữu cặp khóa thực sự đã ký lên thông điệp
hay không). Xác thực chữ ký số bao gồm cả xác minh (toán học) của chữ ký
số là đúng hay khơng và thơng điệp có tồn vẹn hay khơng.
Q trình để tạo hoặc xác thực chữ ký số phù hợp với tiêu chuẩn này
được đưa ra như sau:
2.1.1. Khởi tạo ban đầu

Hình CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.3. Quy trình khởi tạo ban
đầu



16
Tất cả các bên tham gia tạo chữ ký số thực hiện quy trình thiết lập ban
đầu như sau:
- Đối với thuật toán DSA và ECDSA, người ký trước tiên phải có được
các tham số miền thích hợp, bằng cách tự tạo các tham số miền hoặc bằng
cách lấy các tham số miền do thực thể khác tạo ra. Có được tập hợp các tham
số miền, người ký sẽ có được sự đảm bảo về tính hợp lệ của các tham số miền
đó; phương pháp được phê duyệt để có được sự đảm bảo này được cung cấp
trong tiêu chuẩn SP 800-89. Lưu ý rằng thuật tốn RSA khơng sử dụng tham
số miền.
- Mỗi người ký sẽ có được một cặp khóa chữ ký số cho thuật tốn chữ
ký số thích hợp, bằng cách tự tạo cặp khóa hoặc bằng cách lấy cặp khóa từ
một bên đáng tin cậy. Người ký được phép sử dụng cặp khóa và là chủ sở hữu
của cặp khóa đó. Lưu ý rằng nếu một bên đáng tin cậy tạo cặp khóa, thì bên
đó cần được tin cậy để không giả danh thành chủ sở hữu.
- Sau khi có được cặp khóa, người ký (hiện là chủ sở hữu cặp khóa) sẽ
có được 2 đảm bảo:
+ Đảm bảo về tính hợp lệ của khóa bí mật;
+ Đảm bảo rằng anh ta thực sự sở hữu khóa bí mật có liên quan tới
khóa cơng khai.
Các phương pháp được phê duyệt để có được các đảm bảo này được
cung cấp trong tiêu chuẩn SP 800-89 [8].
Một lược đồ chữ ký số yêu cầu đảm bảo danh tính của người ký. Tùy
thuộc vào môi trường mà chữ ký số được tạo và xác minh, chủ sở hữu cặp
khóa (nghĩa là, người ký) có thể đăng ký khóa cơng khai và thiết lập bằng
chứng nhận dạng với một bên đáng tin cậy. Ví dụ: cơ quan chứng thực
(Certification Authority - CA) có thể ký thơng tin xác thực chứa chủ sở hữu
và khóa cơng khai của chủ sở hữu để tạo chứng chỉ sau khi được cung cấp



17
bằng chứng về chủ sở hữu danh tính. Các hệ thống chứng nhận thông tin xác
thực và phân phối chứng chỉ nằm ngoài phạm vi của Tiêu chuẩn này.
2.1.2. Tạo chữ ký số

Hình CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.4. Quy trình tạo chữ ký số
Trước khi tạo chữ ký số, một bản tóm tắt thơng điệp được tạo ra bằng
cách sử dụng hàm băm được phê duyệt.
Tùy thuộc vào thuật toán ký số sẽ được sử dụng, các thông tin bổ sung
cần thiết sẽ được xác định, lựa chọn. Ví dụ, một số bí mật ngẫu nhiên trên mỗi
thông điệp sẽ được lựa chọn sử dụng trong thuật toán DSA và ECDSA.
Sử dụng thuật toán ký số đã chọn, khóa riêng, bản tóm tắt thơng điệp và
bất kỳ thơng tin nào khác theo u cầu từng thuật tốn chữ ký số, chữ ký số sẽ
được tạo theo tiêu chuẩn này. Người ký hồn tồn có thể thực hiện xác thực
chữ ký số bằng quy trình xác thực chữ ký số có sử dụng khóa cơng khai. Hoạt
động xác thực này đóng vai trị là bước kiểm tra cuối cùng để phát hiện các
lỗi tính tốn trong q trình tạo chữ ký khác mà chưa bị phát hiện; hoạt động
xác thực này là rất cần thiết khi ký một thơng điệp có giá trị cao, khi nhiều


18
người dùng dự kiến sẽ xác thực chữ ký hoặc nếu người xác thực sẽ xác thực
chữ ký sau một thời gian nữa.
2.1.3. Xác thực chữ ký số

Hình CHUẨN CHỮ KÝ SỐ DSS - HOA KỲ.5. Quy trình xác thực chữ ký số
Hình 2.4 mơ tả q trình xác thực chữ ký số. Lưu ý rằng hình vẽ mơ tả
q trình xác thực thành cơng (nghĩa là, khơng có lỗi nào được phát hiện).

Để xác thực chữ ký số, người xác thực sẽ lấy khóa cơng khai của người
ký, (thường) dựa trên danh tính được yêu cầu. Nếu DSA hoặc ECDSA đã
được sử dụng để tạo chữ ký số, người xác thực cũng sẽ có được các tham số
miền. Khóa cơng khai và các tham số miền có thể được lấy trực tiếp từ người
ký, hoặc từ một chứng chỉ được tạo bởi một bên đáng tin cậy (ví dụ: cơ quan
chứng thực CA). Bản tóm tắt thơng điệp sẽ được tạo trên dữ liệu có chữ ký
được xác thực (nghĩa là không phải chữ ký số nhận được) bằng cách sử dụng
cùng hàm băm được sử dụng trong quá trình tạo chữ ký số. Sử dụng thuật


19
tốn ký số thích hợp, các tham số miền phù hợp, khóa cơng khai và bản tóm
tắt thơng điệp đã được tính tốn, chữ ký số nhận được sẽ được xác thực theo
Tiêu chuẩn này. Nếu quá trình xác thực thất bại, không thể suy luận về việc
dữ liệu hoặc chữ ký số là khơng chính xác, trừ khi sử dụng khóa cơng khai
được chỉ định và định dạng chữ ký được chỉ định mà chữ ký số không thể
được xác thực cho dữ liệu đó, lúc đó mới xác định chắc chắn dữ liệu đã khơng
cịn ngun vẹn.
Trước khi chấp nhận chữ ký số được xác thực là hợp lệ, người xác thực
phải đảm bảo:
- Đảm bảo về danh tính đã được xác nhận của người ký tên;
- Đảm bảo tính hợp lệ của các tham số miền (đối với DSA và ECDSA);
- Đảm bảo tính hợp lệ của khóa cơng khai;
- Đảm bảo rằng người ký thực sự sở hữu khóa bí mật được sử dụng để
tạo chữ ký số tại thời gian mà chữ ký được tạo ra.
Các phương pháp để người xác thực có được các đảm bảo này được
cung cấp trong tiêu chuẩn SP 800-89 [8]. Lưu ý rằng đảm bảo tính hợp lệ của
tham số miền có thể đã đạt được trong q trình thiết lập ban đầu.
Nếu q trình xác thực thành cơng, chữ ký số và dữ liệu đã ký sẽ được
coi là hợp lệ. Tuy nhiên, nếu quá trình xác thực không thành công, chữ ký số

sẽ được coi là không hợp lệ. Chính sách của một tổ chức sẽ điều chỉnh hành
động được thực hiện đối với chữ ký số khơng hợp lệ.
2.2. Thuật tốn ký số DSA
2.2.1. Giới thiệu
2.2.1.1. Các tham số DSA
Chữ ký số DSA được tính tốn dựa trên các tham số miền: khóa bí mật
x, số bí mật k của mỗi thơng điệp, một thơng điệp để ký và một hàm băm.
Việc xác thực chữ ký số sử dụng các tham số miền tương tự: khóa cơng khai y
tương thích với khóa bí mật x đã được sử dụng để tạo chữ ký, thông điệp cần


×