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

Nghiên cứu các kỹ thuật đảm bảo an toàn thông tin trong việc sử dụng tiền điện tử

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.82 MB, 128 trang )

Đại học quốc gia Hà nội
Tr-ờng đại học công nghệ
- - - - - -






Vũ Mạnh Khánh








Nghiên cứu các kỹ thuật đảm bảo an
toàn thông tin trong việc sử dụng
tiền điện tử








Luận văn thạc sĩ









Hà Nội - 2008
Đại học quốc gia Hà Nội
tr-ờng đại học công nghệ
- - - - - -



Vũ Mạnh Khánh





Nghiên cứu các kỹ thuật đảm bảo an
toàn thông tin trong việc sử dụng
tiền điện tử



Ngành : Công nghệ Thông tin
Chuyên ngành : Khoa học Máy tính
Mã số : 60 48 01





Luận văn thạc sĩ



Ng-ời h-ớng dẫn khoa học:
PGS. TS. Trịnh Nhật Tiến





Hà Nội - 2008

2
MỤC LỤC

MỞ ĐẦU 6
CHƢƠNG 1. HẠ TẦNG CƠ SỞ MẬT MÃ KHÓA CÔNG KHAI (PKI) 7
1.1. KHÁI NIỆM VỀ PKI 7
1.2. CƠ SỞ KHOA HỌC VỀ PKI 8
1.2.1. Các thành phần kỹ thuận cơ bản của PKI 8
1.2.1.1. Mã hóa. 8
1.2.1.2. Ký số 12
* Chữ ký Schnorr (Chữ ký một lần ) 18
* Các loại chữ ký khác 19
1.2.1.2. Chứng chỉ số 23
1.2.1. Công nghệ và giao thức của PKI 26

1.2.1.1. Công nghệ OpenCA 26
1.2.1.2. Công nghệ SSL 27
1.2.1.3. Giao thức truyền tin an toàn tầng liên kết dữ liệu(Data Link). 31
1.2.1.4. Giao thức truyền tin an toàn tầng ứng dụng(Application). 33
1.2.1.5. Một số công nghệ bảo mật và an toàn thông tin trên thế giới 35
1.3. GIẢI PHÁP XÂY DỰNG PKI 36
1.3.1. Hành lang pháp lý để xây dựng và ứng dụng PKI. 36
1.3.2. Giải pháp công nghệ xây dựng PKI hiện nay 36
CHƢƠNG 2. AN TOÀN THÔNG TIN TRONG TMĐT 37
2.1 TỔNG QUAN VỀ THƢƠNG MẠI ĐIỆN TỬ 37
2.1.1. Internet và các dịch vụ trên Internet 39
2.1.1.1. Internet 39
2.1.1.2. Các dịch vụ trên Internet 42
2.1.1.3. Nhà cung cấp dịch vụ Internet. 43
2.1.2. Vai trò của thương mại điện tử. 44
2.1.3. Các mô hình thương mại điện tử. 46
2.1.4. Đặc trưng của thương mại điện tử. 47
2.2.MỘT SỐ CÔNG CỤ SỬ DỤNG TRONG THƢƠNG MẠI ĐIỆN TỬ 48
2.2.1. Các công cụ bảo vệ hệ thống giao dịch. 48
2.2.1.1.Tường lửa 48
2.2.1.2.Mạng riêng ảo 48
2.2.1.3. Phần mềm chống virus 49
2.2.2.Các giao thức đảm bảo truyền tin. 50
2.2.2.1.Giao thức SSL 50
2.2.2.2.Giao thức SHTTP. 50
2.2.2.3.Giao thức IPSec 51
2.2.2.4.Giao thức TCP/IP 51
2.2.2.5.Giao thức bảo mật SET 52
2.2.3. Các phương pháp đảm bảo an toàn thông tin người dùng. 53
2.2.3.1. Mã hóa. 53

2.2.3.2.Giấu tin. 53
2.2.3.3.Chữ ký số. 54
2.2.3.4.Chứng chỉ điện tử. 54
2.3.MỘT SỐ BÀI TOÁN ĐẶC TRƢNG TRONG TMĐT 55
2.3.1. Tổng quan về quy trình thương mại điện tử 55
2.3.2.Một số bài toán trong quảng cáo trực tuyến. 56
2.3.2.1.Toàn vẹn thông tin trong quảng cáo trực tuyến 57
2.3.2.2.Bảo vệ bản quyền sở hữu trí tuệ 57
2.3.2.3. “Spam” quảng cáo 59
2.3.3. Một số bài toán trong thỏa thuận và ký kết hợp đồng. 60
2.3.3.1.Bảo đảm tính toàn vẹn thông tin hợp đồng trực tuyến. 61
2.3.3.2.Bảo đảm tính xác thực 62
2.3.3.3.Chống chối bỏ hợp đồng giao dịch 64
2.3.4.Một số bài toán trong thanh toán trực tuyến và chuyển giao hàng hóa 65
2.3.4.1.An toàn cho thẻ tín dụng. 66
2.3.4.2.Giả danh đồng tiền số, dùng đồng tiến số không đúng cấu trúc. 69
2.3.4.3.Đồng tiền tiêu nhiều lần 70

3
CHƢƠNG 3. BẢO ĐẢM AN TOÀN THÔNG TIN TRONG QUÁ TRÌNH SỬ DỤNG TIỀN ĐIỆN TỬ 71
3.1. GIỚI THIỆU TIỀN ĐIỆN TỬ 71
3.1.1. Lược đồ giao dịch. 72
3.1.2. Phân loại tiền điện tử 74
3.1.3. Đặc điểm của tiền điện tử 75
3.1.4.Cấu trúc của tiền điện tử. 78
3.2. VẤN ĐỀ BẢO ĐẢM AN TOÀN TIỀN ĐIỆN TỬ 79
3.2.1. Vấn đề ẩn danh và khai man giá trị đồng tiền. 80
3.2.1.1. Dùng khóa công khai. 81
3.2.1.2 Phương pháp thứ hai là dùng giao thức “cắt và chọn”. 81
3.2.2. Vấn đề giả mạo và tiêu xài đồng tiền nhiều lần. 82

3.2.2.1.Tiền điện tử trực tuyến: 82
3.2.2.2.Tiền điện tử ngoại tuyến: 82
3.2.2.3.Tiền điện tử định danh-ngoại tuyến (Identified offline): 83
3.2.2.4.Tiền điện tử ẩn danh-ngoại tuyến (Anonymous Offline): 83
3.2.3. Một số lược đồ bảo đảm an toàn tiền điện tử. 84
3.2.3.1.Lược đồ CHAUM - FIAT - NAOR 84
3.2.3.2. Lược đồ BRAND 89
3.3.MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ. 97
3.3.1.Hệ thống DIGICASH. 97
3.3.1.1.Phương thức hoạt động 97
3.3.1.2.Nhận xét 100
3.3.2. Hệ thống tiền điện tử First Virtual. 102
3.3.2.1.Phương thức hoạt động 102
3.3.2.2.Nhận xét 104
3.3.3. Hệ thống tiền điện tử Millicent 105
3.3.3.1.Phƣơng thức hoạt động 105
3.3.3.2.Nhận xét 108
3.3.4.Hệ thống tiền điện tử Modex 109
3.3.4.1.Phương thức hoạt động 109
3.3.4.2.Nhận xét 109
3.3.5. So sánh các hệ thống 110
3.4. THỰC TRẠNG SỬ DỤNG TIỀN ĐIỆN TỬ TẠI VIỆT NAM 111
3.5. ĐỀ XUẤT GIẢI PHÁP SỬ DỤNG TIỀN ĐIỆN TỬ TẠI VIỆT NAM 112
3.5.1.Giải pháp chung 112
3.5.2.Đề xuất hình thức sử dụng tiền điện tử bằng phần mềm. 113
3.5.2.1.Cấu trúc của đồng tiền 114
3.5.2.2.Phương thức hoạt động 115
3.5.2.3. Nhận xét 116
CHƢƠNG 4. THỬ NGHIỆM 117
4.1. CƠ SỞ LÝ THUYẾT 117

4.1.1. Sơ đồ chữ ký RSA. 117
4.1.2.Sơ đồ chữ ký mù dựa trên giao thức ký RSA. 118
4.1.3.Ví dụ cho sơ đồ chữ ký mù dựa trên giao thức ký RSA 119
4.2.MỘT SỐ GIAO DIỆN CHƢƠNG TRÌNH 120
4.3. MỘT SỐ ĐOẠN CODE CHÍNH CỦA CHƢƠNG TRÌNH 123
KẾT LUẬN 125
BẢNG CHỮ CÁI VIẾT TẮT 126
TÀI LIỆU THAM KHẢO 126



4
DANH MỤC HÌNH VẼ
Hình 1 . Hệ mã hóa khóa đối xứng 10
Hình 2 . Hệ mã hóa khóa công khai 11
Hình 3 . Mô hình quá trình ký có sử dụng hàm băm 15
Hình 4 . Quá trình kiểm thử 15
Hình 5 . Mô hình ký của loại chữ ký khôi phục thông điệp 15
Hình 6 . Vị trí SSL trong mô hình OSI 27
Hình 7 : Một hệ thống mạng riêng ảo 49
Hình 8. Sơ đồ mã hóa 53
Hình 9: : Mô hình giao dịch cơ bản của hệ thống tiền điện tử 72
Hình 10 :Phân loại tiền điện tử. 74
Hình 11: Mô hình giao dịch có tính chuyển nhƣợng. 76
Hình 12: Mô hình thanh toán trong lƣợc đồ CHAUM-FIAT-NAOR 85
Hình 13 : Quá trình khởi tạo tài khoản 89
Hình 14: Quá trình xƣng danh trong giao thức xác thực. 90
Hình 15 : Giao thức rút tiền 92
Hình 3.8 : Giao thức thanh toán 94
Hình 16: Quá trình giao dịch của hệ thống Digicash 100

Hình 17 : Nội dung email 103
Hình 18: Khách hàng mua Broker scrip. 106
Hình 19: Khách hàng mua Merchant scrip. 106
Hình 20: Nhà môi giới mua Merchant scrip và gửi cho khách hàng. 107
Hình 21: Khách hàng gửi Merchant scrip để thanh toán. 107

5







LỜI CẢM ƠN





Tôi xin chân thành cảm ơn PGS.TS Trịnh Nhật Tiến - ngƣời luôn chỉ
bảo, hƣớng dẫn, cung cấp những tài liệu quý báu, giúp đỡ tôi trong quá trình
học tập và hoàn thành luận văn này.
Tôi xin cám ơn các thầy cô giáo Khoa Công nghệ thông tin - trƣờng
Đại học Công nghệ, các bạn học viên lớp Cao học CNTT và gia đình đã tạo
điều kiện, giúp đỡ tôi về vật chất cũng nhƣ luôn cổ vũ tôi trong quá trình
học tập và hoàn thành luận văn.

6
MỞ ĐẦU



Sự phát triển nhanh chóng của mạng và công nghệ thông tin, sự bùng nổ của
Internet đã mang lại những thay đổi chƣa từng thấy trong thƣơng mại điện tử, nó tác
động mạnh mẽ đến lĩnh vực ngân hàng truyền thống, thúc đẩy sự phát triển thƣơng mại
điện tử và làm xuất hiện hàng ngày các sản phẩm mới có liên quan đến ngân hàng nhƣ
thẻ tín dụng, giao dịch ngân hàng qua điện thoại di động và tiền điện tử hay ví điện
tử cũng đang trở thành hiện thực. Trên thế giới, tiền điện tử đã và đang đƣợc ứng dụng
thành công, nhƣng khái niệm “tiền điện tử” vẫn còn khá mới mẻ ở Việt nam. Tuy nhiên
với xu thế hội nhập vào nền kinh tế thế giới, phát triển các dịch vụ của thƣơng mại điện
tử là xu hƣớng tất yếu, chúng ta phải tìm hiểu và ứng dụng những dịch vụ mới trên thế
giới. Chính vì thế, luận văn tìm hiểu và nghiên cứu một loại hình thanh toán điện tử
mới, đã đƣợc ứng dụng thành công trên thế giới, đó là “Tiền điện tử”.
Luận văn đề cập đến các kỹ thuật đảm bảo an toàn thông tin trong việc sử dụng
tiền điện tử, dựa trên việc tìm hiểu một số lƣợc đồ, những hệ thống tiền điện tử điển
hình và những lý thuyết mật mã đƣợc áp dụng trong giải pháp tiền điện tử.
Luận văn gồm 3 chƣơng
– Chƣơng 1: Hạ tầng cơ sở mật mã khóa công khai (PKI)
Trong chƣơng này sẽ trình bày một số khái niệm về cơ sở mật mã khóa công khai,
các giao thức, công nghệ , vấn đề mã hoá, ký số, chữ ký mù, vấn đề xƣng danh đƣợc áp
dụng đƣợc sử dụng để xây dựng PKI.
– Chƣơng 2: An toàn thông tin trong thƣơng mại điện tử
Trong chƣơng này sẽ trình bày mô hình thƣơng mại điện tử và các công cụ sử dụng
trong thƣơng mại điện tử, nhằm đảm bảo an toàn thông tin.
– Chƣơng 3: Bảo đảm an toàn thông tin trong quá trình sử dụng tiền điện tử.
Trong chƣơng này sẽ tìm hiểu chi tiết về tiền điện tử, khái niệm, đặc điểm, phân
loại. Tìm hiểu, phân tích, so sánh các lƣợc đồ. Phân tích các tình huống trong quá trình
sử dụng tiền điện tử và nêu ra phƣơng pháp giải quyết. Đề xuất một phƣơng án sử dụng
tiền điện tử tại Việt Nam.
– Chƣơng 4: Thử nghiệm

Trong chƣơng này viết thử nghiệm một số modulo trong quá trình tạo đồng tiền điện
tử. Trong đó tập trung vào quá trình chống gian lận giá trị đồng tiền.


7

Chƣơng 1. HẠ TẦNG CƠ SỞ MẬT MÃ KHÓA CÔNG KHAI (PKI)

1.1. KHÁI NIỆM VỀ PKI
PKI có thể hiểu là: Tập hợp các công cụ, phƣơng tiện cùng các giao thức bảo
đảm an toàn truyền tin cho các giao dịch trên mạng máy tính công khai. Đó là nền móng
mà trên đó các ứng dụng, các hệ thống an toàn bảo mật thông tin đƣợc thiết lập.

Theo nghĩa đầy đủ, PKI gồm 3 phần chính:
Phần 1: Tập hợp các công cụ, phƣơng tiện, giao thức bảo đảm an toàn thông tin.
Phần 2: Hành lang pháp lý: Luật giao dịch điện tử, các Qui định dƣới luật.
Phần 3: Các tổ chức điều hành giao dịch điện tử (CA, RA, LRA,…).
Ba thành phần trên thiết lập một Hệ thống tin cậy trên mạng máy tính công khai.

Hệ thống có các khả năng sau:
 Bảo đảm bí mật các thông tin truyền trên mạng: thực thể không đƣợc cấp quyền
khó có thể hiểu bản tin.
 Bảo đảm toàn vẹn các thông tin truyền trên mạng: thực thể không đƣợc cấp
quyền khó có thể sửa đổi bản tin.
 Bảo đảm xác thực các thông tin truyền trên mạng: thực thể nhận bản tin có thể
xác định đƣợc nguồn gốc bản tin.
 Bảo đảm hỗ trợ các yêu cầu “chống chối cãi.”

Nhờ những khả năng đó, trên hệ thống này, các thực thể không biết mặt nhau, từ
xa có thể tiến hành các giao dịch trong niềm tin cậy lẫn nhau.











8
1.2. CƠ SỞ KHOA HỌC VỀ PKI
1.2.1. Các thành phần kỹ thuật của PKI
1.2.1.1. Mã hóa.
Mã hóa là công cụ cơ bản của việc đảm bảo an toàn dữ liệu. Ở thời kỳ sơ khai,
con ngƣời đã sử dụng nhiều phƣơng pháp để bảo vệ các thông tin bí mật, nhƣng tất cả
các phƣơng pháp đó chỉ mang tính nghệ thuật hơn là khoa học. Ban đầu, mật mã học
đƣợc sử dụng phổ biến cho quân đội, qua nhiều cuộc chiến tranh, vai trò của mật mã
ngày càng quan trọng và mang lại nhiều thành quả không nhỏ nhƣ các hệ mã cổ điển
Caeser, Playfair,…Chúng là nền tảng cho mật mã học này nay.
Ngày nay, khi toán học đƣợc áp dụng cho mật mã học thì lịch sử của mật mã học
đã sang trang mới. Việc ra đời các hệ mã hóa đối xứng không làm mất đi vai trò của các
hệ mật mã cổ điển mà còn bổ sung cho ngành mật mã nhiều phƣơng pháp mã hóa mới.
Từ năm 1976, khi hệ mật mã phi đối xứng (mật mã khóa công khai) ra đời, nhiều
khái niệm mới gắn với mật mã học đã xuất hiện: chữ ký số, hàm băm, mã đại diện,
chứng chỉ số. Mật mã học không chỉ áp dụng cho quân sự mà còn cho các lĩnh vực kinh
tế xã hội khác (giao dịch hành chính, thƣơng mại điện tử).
Hiện nay có nhiều phƣơng pháp mã hóa khác nhau, mỗi phƣơng pháp có ƣu,
nhƣợc điểm riêng. Tùy theo yêu cầu của môi trƣờng ứng dụng nào, ngƣời ta có thể
dùng phƣơng pháp này hay phƣơng pháp kia. Có những môi trƣờng cần phải an toàn

tuyệt đối bất kể thời gian và chi phí. Có những môi trƣờng lại cần giải pháp dung hòa
giữa bảo mật và chi phí.
Các thông điệp cần chuyển đi và cần đƣợc bảo vệ an toàn gọi là bản rõ
(plaintext), và đƣợc ký hiệu là P. Nó có thể là một dòng các bít, các file, âm thanh số
hoá, Bản rõ đƣợc dùng để lƣu trữ hoặc để truyền đạt thông tin. Trong mọi trƣờng hợp
bản rõ là thông điệp cần mã hoá. Quá trình xử lý một thông điệp trƣớc khi gửi đƣợc gọi
là quá trình mã hoá (encryption). Một thông điệp đã đƣợc mã hoá đƣợc gọi là bản mã
(ciphertext), và đƣợc ký hiệu là C. Quá trình xử lý ngƣợc lại từ bản mã thành bản rõ
đƣợc gọi là quá trình giải mã (decryption).



9
Hệ mật mã là tập hợp các thuật toán, các khóa nhằm che dấu thông tin tin cũng
nhƣ làm rõ nó.
Hệ mật mã đƣợc định nghĩa là bộ năm ( P,C,K,E,D), trong đó:
- P là tập hữu hạn các bản rõ có thể
- C là tập hữu hạn các bản mã có thể
- K là tập hữu hạn khóa có thể
- E là tập các hàm lập mã
- D là tập các hàm giải mã. Với mỗi k

K có một hàm lập mã E
k

E (E
k
:P

C) và

một hàm giải mã D
k


D (D
k
: C

P) sao cho D
k
(E
k
(x)) = x ,

x

P.
Hiện nay các hệ mật mã đƣợc phân làm hai loại chính là: Hệ mật mã đối xứng và
hệ mật mã phi đối xứng (hay còn gọi là hệ mật mã khóa công khai).
Một số hệ mật mã đối xứng là: Caesar, IDEA, DES, Triple DES.
Một số hệ mật mã công khai là: RSA, Elgamal, ECC.
















10
* Hệ mã hóa khóa đối xứng.

Hình 1 . Hệ mã hóa khóa đối xứng
* Ƣu điểm:
- Tốc độ mã hóa nhanh.
- Sử dụng đơn giản: chỉ cần dùng một khoá cho cả 2 bƣớc mã và giải mã.
* Nhƣợc điểm:
- Các phƣơng mã hoá cổ điển đòi hỏi ngƣời mã hoá và ngƣời giải mã phải cùng
chung một khoá. (Chính xác là biết khóa này “dễ dàng” xác định khoá kia). Khi
đó khoá phải đƣợc giữ bí mật tuyệt đối. Mặt khác 2 ngƣời cùng giữ chung một
bí mật thì “khó” giữ đƣợc “bí mật”.
- Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử dụng hệ mã
hoá cổ điển. Ngƣời gửi và ngƣời nhận phải luôn luôn thống nhất với nhau về
khoá. Việc thay đổi khoá là rất “khó” và dễ bị lộ.
- Khuynh hƣớng cung cấp khoá dài, lại phải đƣợc thay đổi thƣờng xuyên cho mọi
ngƣời, trong khi vẫn duy trì cả tính an toàn và chi phí, sẽ cản trở rất nhiều tới
việc phát triển hệ mật mã cổ điển.








11
* Hệ mã hóa khóa công khai



Hình 2 . Hệ mã hóa khóa công khai

* Ƣu điểm:
- Dùng hệ mã hóa công khai nên không cần bảo mật khóa mã hóa, chỉ cần bảo mật
khóa giải mã.
- Có thể dùng hệ mã hóa khóa công khai để tạo chữ ký điện tử, chứng chỉ số.
* Nhƣợc điểm:
- Tốc độ mã hóa / giải mã chậm, “khó” thực hiện việc mã hóa các bản tin dài.






















12
1.2.1.2. Ký số
Với thỏa thuận thông thƣờng trên giấy, hai đối tác xác nhận sự đồng ý bằng cách
kí tay vào cuối các hợp đồng. Bằng cách nào đó ngƣời ta phải thể hiện đó là chữ kí của
riêng họ và kẻ khác không thể giả mạo. Mọi cách sao chép chữ kí trên giấy thƣờng dễ
bị phát hiện, vì bản sao có thể phân biệt đƣợc với bản gốc.
Các giao dịch hợp tác trên mạng cũng đƣợc thực hiện theo cách tƣơng tự, nghĩa
là hai đối tác trên hai nút mạng cũng phải kí vào Bản thỏa thuận. Chỉ khác là văn bản
truyền trên mạng đƣợc biểu diễn dƣới dạng “số” (chỉ dùng chữ số 0 và 1), ta gọi nó này
là “văn bản số” (điện tử). Do đó chữ kí trên “văn bản số” khác với chữ kí trên văn bản
giấy thông thƣờng.
Việc giả mạo và sao chép lại đối với “văn bản số” là việc hoàn toàn dễ dàng,
không thể phân biệt đƣợc bản gốc với bản sao. Nhƣ vậy “chữ kí” ở cuối “văn bản số”
không thể chịu trách nhiệm đối với toàn bộ nội dung văn bản loại này. Do đó Chữ kí
thể hiện trách nhiệm đối với toàn bộ “văn bản số” phải là “chữ kí” đƣợc kí trên từng bit
của văn bản loại này. Bản sao của “chữ kí số” có tƣ cách pháp lí.
Chữ kí thông thƣờng đƣợc kiểm tra bằng cách so sánh nó với chữ kí gốc. Ví dụ,
ai đó kí một tấm séc để mua hàng, ngƣời bán phải so sánh chữ kí trên mảnh giấy với
chữ kí gốc nằm ở mặt sau của thẻ tín dụng để kiểm tra. Dĩ nhiên, đây không phải là
phƣơng pháp an toàn vì nó dễ dàng bị giả mạo.
“Chữ kí số” có thể đƣợc kiểm tra chính xác nhờ dùng một thuật toán kiểm tra
công khai. Nhƣ vậy, bất kỳ ai cũng có thể kiểm tra đƣợc chữ kí số. Việc dùng một sơ đồ
chữ kí an toàn có thể sẽ ngăn chặn đƣợc khả năng giả mạo.






13
* Đại diện thông điệp
Vì “Chữ kí số ” đƣợc kí trên từng bit của “văn bản số”, nên độ dài của nó ít nhất
cũng bằng văn bản cần kí. Nhƣ vậy sẽ tốn kém chỗ nhớ cũng nhƣ thời gian “kí” và thời
gian truyền “Chữ kí số ”. Trên thực tế thay vì kí trên “văn bản số”, ngƣời ta kí trên
“Đại diện” (Digest) của nó.
Để ký trên “văn bản số” dài, đầu tiên phải tạo “đại diện” của văn bản nhờ
“Hàm băm ”. Một thông điệp đƣợc đƣa qua hàm băm sẽ tạo ra xâu bit với độ dài cố
định và ngắn hơn đƣợc gọi là “Đại diện” (Digest). Mỗi thông điệp đi qua 1 hàm băm
chỉ cho duy nhất 1 “Đại diện”. Ngƣợc lại, “khó” tìm đƣợc 2 thông điệp khác nhau mà
có cùng một “Đại diện” (ứng với cùng 1 hàm băm).
Hàm băm kết hợp với “chữ ký số” sẽ tạo ra loại “chữ ký điện tử ” vừa an toàn
(không thể cắt / dán), vừa có thể dùng để kiểm tra tính toàn vẹn của thông điệp.
1). Ngƣời gửi: Tạo ra “chữ ký số”.
* Đƣa thông điệp cần gửi qua hàm băm, tạo ra “Đại diện”.
* Mã hoá “Đại diện” bằng khoá riêng (private) của ngƣời gửi để tạo ra “chữ ký số”.
* Mã hoá thông điệp và chữ ký bằng khoá công khai (public) của ngƣời nhận, gửi đi.


14
2). Ngƣời nhận: Định danh người ký, kiểm tra tính toàn vẹn của thông điệp.
* Giải mã thông điệp bằng khoá riêng của mình, giải mã chữ ký bằng khoá công khai
của ngƣời gửi để lấy “Đại diện” ra.
* Cho thông điệp qua hàm băm để tạo ra “Đại diện” mới.
* So sánh “Đại diện” mới với “Đại diện” nhận đƣợc.
Nếu chúng giống nhau thì ngƣời nhận có thể vừa định danh đƣợc ngƣời gửi,
vừa kiểm tra tính toàn vẹn của thông điệp.









15

* Phân loại chữ ký điện tử.
Chữ ký “điện tử” đƣợc chia làm 2 lớp, lớp chữ ký kèm thông điệp (message
appendix) và lớp chữ ký khôi phục thông điệp (message recovery).
Chữ ký kèm thông điệp: Đòi hỏi thông điệp ban đầu là đầu vào của giải thuật
kiểm tra. Ví dụ: chữ ký Elgamal.
P
P
h
S
h sig
k’
x x’=h(x) y=sig
k’
(x’)

Hình 3 . Mô hình quá trình ký có sử dụng hàm băm

P x S
 True
 False

ver
k’’

Hình 4 . Quá trình kiểm thử

Chữ ký khôi phục thông điệp: Thông điệp ban đầu sinh ra từ bản thân chữ ký.
Ví dụ: chữ ký RSA.
P
S
sig
k’
x
s=sig
k’
(x)

Hình 5 . Mô hình ký của loại chữ ký khôi phục thông điệp









16
 Sơ đồ chữ ký RSA.
Thuật toán Sinh khóa cho chữ ký RSA (do người A thực hiện)
1. Sinh hai số nguyên tố lớn p và q có giá trị xấp xỉ nhau

2. Tính n = p.q, và

(n) = (p-1).(q-1)
3. Chọn một số ngẫu nhiên b, 1 < b <

(n), sao cho gcd(b,

(n)) = 1
4. Sử dụng thuật toán Euclide để tính số a, 1 < a <

(n), sao cho a.b ≡ 1
(mod

(n))
5. Khóa kiểm thử là (n, b), Khóa ký là (a)

Thuật toán Ký và Kiểm thử chữ ký
(i). Ký : (do người A thực hiện)
a. Sử dụng khóa ký (a) theo thuật toán trên
b. Chọn một bản mã x, trong khoảng [1, n-1]
c. Tính : y = x
a
mod n
d. Nhận đƣợc chữ ký y
(ii). Kiểm thử : (do người B thực hiện)
a. Lấy khóa kiểm thử (n, b). Khóa này đƣợc công khai.
b. Nếu x  y
b
mod n  TRUE, ngƣợc lại  FALSE



17
* Sơ đồ chữ ký DSS.
Phƣơng pháp Digital Signature Standard (DSS) là sự cải tiến của phƣơng pháp
ElGamal. Phƣơng pháp này đƣợc công bố trên Federal Register vào ngày 19 tháng 5
năm 1994 và chính thức trở thành phƣơng pháp chuẩn từ ngày 1 tháng 12 năm 1994.
Thuật toán Sinh khóa cho chữ ký DSS (do người A thực hiện)
1. Chọn một số nguyên tố q trong khoảng 2
159
< q < 2
160

2. Chọn một số t (0

t

8), và chọn một số nguyên tố p (2
511+64t
<p<2
512+64t
) sao
cho p chia hết cho (q–1)
3. Chọn 1 phần tử sinh

trong nhóm Cyclic có cấp là q
4. Chọn một số ngẫu nhiên a (1

a

q–1)

5. Tính

=

a
mod p
6. Khóa kiểm thử là (p, q,

,

), Khóa ký là (a)
Thuật toán Ký và Kiểm thử chữ ký
(i). Ký : (do người A thực hiện với văn bản x)
a. Chon ngẫu nhiên một số nguyên k (0 < k < q)
b. Tính r = (

k
mod p) mod q
c. Tính k
-1
mod q
d. Tính s = k
-1
(m + ar) mod q
e. Chữ ký của A trên x là (r, s)
(ii). Kiểm thử : (do người B thực hiện)
a. Lấy khóa kiểm thử (p, q,

,


). Khóa này đƣợc công khai.
b. Kiểm tra 0 < r < q và 0 < s < q, ngƣợc lại  FALSE
c. Tính w = s
-1
mod q
d. Tính u1 = w.m (mod q) và u2 = r.w (mod q)
e. Tính v = (

u1

u2
mod p) mod q
f. Nếu v = r  TRUE, ngƣợc lại  FALSE


18
* Chữ ký Schnorr (Chữ ký một lần )
Sơ đồ chữ ký dùng một lần (one-time signature) là một khái niệm vẫn còn khá mới mẻ
song rất quan trọng, đặc biệt là trong một số mô hình về tiền điện tử.
Sinh khóa :
Với sơ đồ chữ ký dùng một lần của Schnorr, những ngƣời dùng trong cùng hệ thống có
thể chia sẻ một số ngẫu nhiên g và hai số nguyên tố p và q sao cho:
q|(p-1), q

1 và g
q


1 mod q. Sơ đồ ký nhƣ sau:
Lấy G là nhóm con cấp q của Z

*
n
với q là số nguyên tố.
Chọn phần tử sinh g

G sao cho bài toán logarit trên G là khó giải.
Chọn x ≠ 0 làm khóa bí mật .
Tính y = g
x
làm khóa công khai.
Lấy H là hàm băm không va chạm.
Ký và kiểm thử :
Chọn r ngẫu nhiên thuộc Z
q
.
Tính c = H(m, g
r
)
Tính s = (r – c.x) mod q
Chữ ký Schnorr là cặp (c, s)
Kiểm tra chữ ký:
Với một văn bản m cho trƣớc, một cặp (c, s) đƣợc gọi là một chữ ký Schnorr hợp lệ
nếu thỏa mãn phƣơng trình:
c = H (m, g^s*y^c)
Để ý rằng ở đây, c xuất hiện ở cả 2 vế của phƣơng trình.











19
* Các loại chữ ký khác
Chữ ký đồng thời:
Ở đây, chữ ký không phải là của một ngƣời mà là của một nhóm ngƣời. Muốn tạo
đƣợc chữ ký, tất cả những ngƣời này phải tham gia vào một giao thức (protocol). Tuy
nhiên chữ ký có thể đƣợc kiểm định bởi bất cứ ai. Đây là trƣờng hợp dành cho thực tế
của việc đƣa ra những quyết định của nhiều ngƣời.
Chữ ký ủy nhiệm:
Hệ chữ ký này dành cho các trƣờng hợp mà ngƣời chủ chữ ký bị ốm không có khả
năng làm việc hay đã đi vắng đến một nơi không có phƣơng tiện mạng máy tính cần
thiết để ký. Vì vậy chữ ký ủy nhiệm đƣợc tạo ra để ngƣời ký có thể ủy nhiệm cho một
ngƣời nào đó ký thay. Tất nhiên chữ ký ủy nhiệm phải có các thuộc tính riêng thêm
vào:
- Chữ ký ủy nhiệm là phần phân biệt với chữ ký thƣờng, và ngƣời đƣợc ủy nhiệm
không thể tạo đƣợc chữ ký chủ (chữ ký của ngƣời chủ).
- Chữ ký ủy nhiệm cũng có chức năng chứng thực nhƣ chữ ký chủ, chỉ có ngƣời
chủ và ngƣời đƣợc ủy nhiệm mới có thể tạo đƣợc chữ ký này. Ngƣời nhận đƣợc
văn bản có thể hoàn toàn tin tƣởng vào chữ ký đó nhƣ chữ ký chủ.
- Ngƣời chủ có thể xác định đƣợc danh tính ngƣời ký từ một chữ ký ủy nhiệm.
- Ngƣời đƣợc ủy nhiệm không thể chối cãi đƣợc nếu đã ký một văn bản ủy nhiệm
hợp lệ (tức là anh ta không thể chối đổ cho ai khác hay chính ngƣời chủ đã ký
mà lại nói anh ta ký).










20
Chữ ký không thể phủ nhận (chống chối bỏ):
Chữ ký không thể phủ nhận do David Chaum và Hans Van Antwerpen phát
minh năm 1989. Ở đây, thuật toán kiểm định đòi hỏi phải có sự tham gia của ngƣời ký.
Thực chất đây là chữ ký có tính chất không thể chuyển giao đƣợc (Untranferable): Chỉ
có ý nghĩa với ngƣời nhận là ngƣời có trao đổi làm ăn với ngƣời ký, khi chuyển nó cho
một ngƣời khác thì không có tác dụng nữa (không thể kiểm định đƣợc chữ ký nữa). Các
văn bản có chữ ký này không nhằm vào mục đích đem đi công bố ở nơi khác mà chỉ có
tính chất giấy phép. Vì thế nếu sao chép là mất ý nghĩa.
Chữ ký không thể phủ nhận đƣợc dùng trong việc bán sản phẩm phần mềm: Các
hãng phần mềm sẽ bán các sản phẩm của mình có chữ ký chứng tỏ bản quyền. Việc
kiểm định đòi hỏi phải liên lạc với hãng này. Nếu nhƣ có một ai đó bán phần mềm sao
chép thì lúc đó ngƣời mua đòi kiểm định sẽ bị lộ ngay vì không thực hiện đƣợc.
Chữ ký nhóm:
Tình huống thực tế minh họa cho chữ ký này nhƣ sau: Một công ty có nhiều máy
tính nối với nhau trong một mạng cục bộ, các máy tính này đƣợc đặt trong một số
phòng ban bộ phận. Mỗi phòng chỉ có một máy in mà chỉ các cán bộ của phòng mới
đƣợc in ra. Vì vậy ngƣời ta muốn một cơ chế để việc in này có thể thực hiện mà việc
kiểm soát không cho ngƣời ngoài phòng in đƣợc, trong khi mỗi yêu cầu in lại không
cần nêu rõ tên ngƣời yêu cầu để tránh xâm phạm tính riêng tƣ của từng công việc.
Nhƣ vậy một hệ chữ ký sẽ đƣợc thiết lập sao cho chỉ có những ngƣời nằm trong
một nhóm ngƣời nào đó – trong cùng phòng – là có thể tạo ra đƣợc chữ ký mà ngƣời
kiểm định – trong ví dụ trên là máy in hay chƣơng trình quản lý máy in – kiểm tra và
chấp nhận. Chữ ký này chỉ nói lên ngƣời ký nằm trong nhóm đó mà thôi chứ không nói

lên đích xác đó là ngƣời nào nên giữ đƣợc tính riêng tƣ của từng ngƣời ký. Tuy nhiên
hệ chữ ký đặc biệt này còn có một tính chất đặc biệt nữa là: nếu cần thiết, một ngƣời
thẩm quyền có thể “mở” đƣợc một chữ ký ra để xem ai cụ thể trong nhóm đã ký. Ứng
dụng của nó là nếu chƣơng trình quản lý máy in cho thấy có ngƣời đã quá lạm dụng thì
trƣởng phòng có thể dùng quyền hạn của mình để “cảnh báo” những chữ ký lên những
yêu cầu in tốn kém đó, sau đó có biện pháp phạt ngƣời lạm dụng nhƣ là nộp tiền phạt.
Khả năng này làm cho tất cả mọi ngƣời phải biết điều độ với máy in của công ty, nếu
không muốn bị nêu tên cảnh báo.



21
Chữ ký mù:
Chữ ký mù đƣợc đƣợc Chaum giới thiệu vào năm 1983. Chữ ký mù là để ngƣời
ký tạo ra chữ ký trên một văn bản mà chính ngƣời ký cũng không biết nội dung - không
biết nội dung nhƣng vẫn tạo đƣợc chữ ký hợp lệ. Đặc trƣng của nó là: Chỉ có duy nhất
ngƣời chủ của chữ ký mới có khả năng tạo ra chữ ký hợp lệ cho một văn bản và chữ ký
cho một văn bản đó có thể đƣợc kiểm tra tính đúng đắn bởi bất cứ ai. Chữ ký mù đƣợc
áp dụng trong kỹ thuật bỏ phiếu từ xa và hệ thống e-money ẩn danh.
Giả sử Alice muốn mua quyển sách Q với giá 50$ từ Bob. Giả sử hai ngƣời cùng
dùng dịch vụ của một ngân hàng. Giao thức giao dịch gồm ba giai đoạn sau:
Rút tiền (Withdrawal):
1/. Alice tạo tiền điện tử C (với thông tin: số serial, giá trị của C, ví dụ 50$).
2/. Alice yêu cầu ngân hàng ký “mù” lên C.
3/. Giao thức ký thành công, thì ngân hàng sẽ trừ 50$ trong tài khoản của Alice.
Tiêu tiền (Spending):
1/. Alice đƣa C đã ký của ngân hàng cho Bob và yêu cầu quyển sách Q.
2/. Bob kiểm tra chữ ký C, nếu chữ ký không hợp lệ thì Bog kết thúc giao thức.
3/. Gửi tiền (Deposit):
4/. Bob lấy C từ Alice và gửi cho ngân hàng.

5/. Ngân hàng xác thực chữ ký trên C.
+ Nếu chữ ký là hợp lệ, ngân hàng sẽ kiểm tra xem C đã đƣợc tiêu trƣớc đó
chƣa.
+ Nếu C chƣa đƣợc tiêu, thì ngân hàng sẽ cộng thêm tiền vào tài khoản của Bob.
6/. Nếu việc gửi tiền thành công, Bob sẽ gửi quyển sách Q cho Alice.
Bob khó thể biết C từ tài khoản nào. Khi Bog gửi C vào tài khoản của mình, ngân hàng
cũng khó thể biết đồng tiền đó nhận từ Alice vì nó đã đƣợc ký “mù”. Nhƣ vậy tiền điện
tử C không lƣu vết của những ai đã “tiêu” nó.

22
Khi ký mù lên văn bản x, các bƣớc đƣợc tiến hành nhƣ sau:







Bảng 1: Sơ đồ chữ ký mù
Chữ ký mù dựa trên chữ ký RSA:
Bài toán đặt ra là giả sử A muốn lấy chữ ký của B trên x nhƣng không muốn cho
B biết x. Quá trình thực hiện đƣợc tiến hành nhƣ sau:

















Bảng 2: Sơ đồ chữ ký mù dựa trên chữ ký RSA










1/ Làm mù x: A làm mù x bằng một hàm: z = Blind(x) và gửi z cho B.
2/ Ký: B ký trên z bằng hàm y = Sign(z) = Sign(Blind(x)) và gửi lại y cho A.
3/ Xoá mù: A tiến hành xoá mù trên y bằng hàm
Sign(x) = UnBlind(y) = UnBlind(Sign(Blind(x))).

Lấy p,q là các số nguyên tố lớn, n=p*q, Ø(n) = (p-1)*(q-1), ab = 1 mod Ø(n),
r là một số ngẫu nhiên € Z
n

1/ Làm mù x: A làm mù x bằng một hàm: Blind(x) = x*r
b

mod n=z
và gửi z cho B.
r đƣợc chọn sao cho tồn tại phần tử nghịch đảo r
-1
(mod n)
2/ Ký: B ký trên z bằng hàm Sign(z) = Sign(Blind(x)) = z
a
mod n=y
và gửi lại y cho A.
3/ Xoá mù: A tiến hành xoá mù y bằng thuật toán:
UnBlind(y) = UnBlind(Sign(Blind(x))) = y/r mod n = sign(x).

23
1.2.1.2. Chứng chỉ số
Việc sử dụng mã hóa hay ký số chỉ giải quyết đƣợc vấn đề bảo mật và xác thực
thông điệp. Tuy nhiên “khó” thể đảm bảo rằng ngƣời ký là đối tác thật. Trong nhiều
trƣờng hợp cần thiết phải “chứng minh” bằng phƣơng tiện điện tử danh tính của ai
đó. Ví dụ phải “chứng minh” rằng ngƣời ngƣời ký là “chủ đích thực” hiện thời của
chìa khóa ký.
Một cách giải quyết là dùng “Chứng chỉ số” để xác nhận “chủ đích thực”
hiện thời của khóa công khai.

Chứng chỉ số là một tệp tin điện tử dùng để nhận diện một cá nhân, một máy
dịch vụ, một thực thể nào đó. Nó gắn định danh của đối tƣợng đó với một khóa công
khai, giống nhƣ bằng lái xe, hộ chiếu, chứng minh thƣ.
Chứng chỉ số là kết quả của dự án phát triển chuẩn thƣ mục X.500 của ITU-T
phát triển vào cuối những năm thập niên 90. Chứng chỉ số đƣợc ITU-T đặc tả trong tài
liệu X.509 và dần đƣợc thay đổi qua các phiên bản cho phù hợp với thực tế. Hiện nay
Chứng chỉ X.509 phiên bản 3 đƣợc sử dụng trong các hệ thống xác thực.
Một nơi có thể chứng nhận các thông tin của một thực thể là đúng, nó đƣợc gọi

là cơ quan xác thực chứng chỉ (Certificate Authority - CA). Đó là một đơn vị có thẩm
quyền xác nhận định danh và cấp các chứng chỉ số. CA có thể là một đối tác thứ ba độc
lập hoặc tổ chức tự vận hành một hệ thống tự cấp các chứng chỉ cho nội bộ.
Các phƣơng pháp để xác định định danh phụ thuộc vào các chính sách mà CA
đặt ra. Chính sách lập ra phải đảm bảo việc cấp chứng chỉ số phải đúng đắn, ai đƣợc cấp
và mục đích dùng vào việc gì. Thông thƣờng, trƣớc khi cấp một chứng chỉ số, CA sẽ
công bố các thủ tục cần thiết phải thực hiện cho các loại chứng chỉ số.
Chứng chỉ số chứa khóa công khai, đƣợc gắn với một tên duy nhất của một đối
tƣợng (nhƣ tên của một cá nhân hay máy dịch vụ). Chứng chỉ số giúp ngăn chặn việc sử
dụng khóa công khai cho việc giả mạo. Chỉ có khóa công khai đƣợc chứng thực bởi
chứng chỉ số sẽ làm việc với khóa bí mật tƣơng ứng. Nó đƣợc sở hữu bởi đối tƣợng
với định danh đã đƣợc ghi trong chứng chỉ số.



24
Ngoài khóa công khai, chứng chỉ số còn chứa thông tin về đối tƣợng nhƣ tên mà
nó nhận diện, hạn dùng, tên của CA cấp chứng chỉ số, mã số … Quan trọng nhất là
chứng chỉ số phải có “chữ ký số” của CA đã cấp chứng chỉ đó. Giống nhƣ chứng chỉ
đã đƣợc “đóng dấu”, để cho ngƣời dùng khóa công khai có thể kiểm tra.
Một ngƣời muốn sử dụng Hệ mã hóa khóa công khai để mã hóa thông báo và gửi
cho ngƣời nhận, ngƣời gửi phải có khóa công khai của ngƣời nhận. Một ngƣời muốn
kiểm tra chữ ký số của ngƣời khác, họ phải có khóa công khai của ngƣời ký.
Chúng ta gọi cả hai thành viên (mã hóa thông báo và kiểm tra chữ ký số) là
những ngƣời sử dụng khóa công khai.

Khi khóa công khai đƣợc gửi đến ngƣời sử dụng khóa công khai, thì không cần
thiết phải giữ bí mật khóa công khai này. Tuy nhiên, ngƣời sử dụng khóa công khai
phải đảm bảo rằng khóa công khai đƣợc sử dụng đúng là của đối tác. Nếu kẻ phá hoại
dùng khóa công khai khác thay thế cho khóa công khai hợp lệ, thì nội dung thông báo

đã mã hóa có thể bị lộ, chữ ký số có thể bị làm giả. Rõ ràng khóa công khai cần phải
đƣợc xác thực trƣớc khi dùng.
Đối với nhóm thành viên nhỏ, yêu cầu trên có thể đƣợc thỏa mãn dễ dàng.Ví dụ
trƣờng hợp hai ngƣời quen biết nhau, khi ngƣời này muốn truyền thông an toàn với
ngƣời kia, họ có thể có đƣợc bản sao khóa công khai của nhau bằng cách trao đổi các
đĩa nhớ có ghi các khóa công khai của từng ngƣời. Nhƣ vậy đảm bảo rằng các khóa
công khai đƣợc lƣu giữ an toàn trên mỗi hệ thống cục bộ của từng ngƣời. Đây chính là
hình thức phân phối khóa công khai thủ công.
Phân phối khóa công khai thủ công nhƣ trên là không thực tế hoặc không thỏa
đáng khi số lƣợng ngƣời dùng là quá lớn và nơi làm việc phân tán. Hệ thống cấp chứng
chỉ khóa công khai giúp cho việc phân phối khóa công khai có hệ thống và chuẩn mực.




×