AN NINH CƠ SỞ DỮ LIỆU
CHỮ KÝ MÙ
Giảng viên: PGS TS. Trịnh Nhật Tiến
Học viên: Nguyễn Xuân Minh
1
MỤC LỤC
2
1. GIỚI THIỆU CHỮ KÍ MÙ
Chữ ký số lần đầu tiên được Chaum giới thiệu vào năm 1983, cho phép khách
hàng mua hàng nặc danh trong các hệ thống thương mại điện tử. Ở đây người ký văn
bản không biết được nội dung văn bản mà mình ký, ký cho ai (dù rằng anh ta xác thực
được chữ ký của mình). Điều này đồng nghĩa với việc chúng ta ký mà không biết nội
dung của nó. Nhưng nó lại rất hữu ích trong các vấn đề đòi hỏi sự nặc danh trong
thương mại điện tử, đấu giá điện tử và bỏ phiếu điện tử.
Định nghĩa: Chữ ký mù là chữ ký mà người không biết mình đang ký trên nội
dung gì. Vì vậy người ta gọi là Mù. Làm được như vậy vì nội dung X khi ký đuợc làm
mù thành X’. Người ký, ký trên X’chứ không phải ký trên X. A cần B ký cho một chữ
ký trên nội dung X, A không đưa X cho B ký mà làm mù X thành X’. Sau đó đưa X’
cho B ký. Sau khi nhận được chữ trên X’. A xóa mù để thu được chữ ký trên X. Như
vậy vẫn có chữ ký trên X mà B không biết thông tin gì về X cả.
2. CHỮ KÝ MÙ CỦA CHAUM
2.1. Sõ ðồ chữ ký số RSA
Cho n = p * q với p và q là số nguyên tố lớn ( tối thiểu cỡ 10150), ta tính giá trị
φ(n ) = (p – 1).(q – 1 ).
Đặt P =A = Zn
Chọn khóa kiểm tra chữ ký là b: 1<b <φ (n ), b nguyên tố cùng nhau với
φ(n) (UCLN ( b, φ(n) = 1).
Chọn khóa ký là a: a là phần tử nghịch đảo của b theo φ (n)
K = {( n, p, q, a, b ) / n = p * q là các số nguyên tố, a * b ≡ 1 ( mod φ (n) )} k’ =
(n, b) là khóa công khai và giá trị k’’ = (a, p, q )là giá trị khóa bí mật.
Với mỗi K = (n, p, q, a, b ), x∈P ta định nghĩa:
1627
mod 15707 = 100
2.2. Sõ ðồ chữ ký mù dựa trên giao thức ký RSA
Giả sử A yêu cầu B ký một số tài liệu, nhưng lại không muốn B biết nội dung
của các tài liệu đó.
Mục đích của chúng ta là có được chữ ký của B trên văn bản X, theo sơ đồ chữ
ký RSA chữ ký đó là giá trị x
a
mod n.
Lúc này A và B phải thực hiện một số bước sau:
Bước 1. A làm mù x (che x):
Blind (x) = x.r
b
( Mod n) = u, với r là ngẫu nhiên ∈ Z
n
, n và b được lấy từ khóa
công khai của B.
Bước 2. A gửi u cho B
Khi B ký trên u sẽ nhận được chữ ký là v = Sig (z), sau đó gửi lại cho A:
v = Sig (Blind (x)) = sig(x
* r
b
) = x
a.
. (r
b
)
a
= x
19
mod 15707 = 1731.
Nhưng với sơ đồ chữ ký mù ta không làm như vậy!
Bước 1. Che dấu số định danh x bằng bí danh u:
u= Blind (x) = x
*
r
b
(mod n)=100
*
17
1627
(mod 15707) = 3075
(r = 17 được chọn vì tồn tại phần tử nghịch đảo r
–1
(mod 15707 ) = 924). Bài
toán tìm phần tử nghịch đảo ta sử dụng thuật toán Euclid mở rộng.
Bước 2. Gửi bí danh u cho người ký nhận được chữ ký v:
v = E(y)=u
a
mod n = 3075
19
(mod 15707)=13720
Bước 3. Người gửi nhận được chữ ký trên số định danh x:
Người nhận “xóa mù” trên v sẽ nhận được chữ ký trên số định danh:
4
Unblind (v) = v * r
–1
mod n= 13720 * 924 (mol 15707 )=1731.
3. ỨNG DỤNG CHỮ KÝ MÙ
mình.
- Người đấu giá có thể kiểm tra chữ ký của Ban đăng ký trên phiếu đặt giá của
mình có hợp lệ hay không bằng cách dùng hàm kiểm tra chữ ký và khoá công khai của
Ban đăng ký. (Chú ý: khoá ký trên định danh của người đấu giá được chia sẻ cho mọi
5
thành viên của Ban đăng ký và Ban kiểm tra, nhờ đó sau này Ban kiểm tra có thể phát
hiện ra những người đấu giá giả mạo chữ ký của Ban đăng ký.)
b. Kỹ thuật sử dụng:
Kỹ thuật "chia sẻ khoá bí mật":
Hệ thống phân phối khoá tin cậy đã chia sẻ khoá ký cho các thành viên Ban đăng
ký và ban kiểm tra trước đó. Sau khi xét duyệt hồ sơ xin chữ ký của người đấu giá, nếu
mọi thành viên của Ban đăng ký đều nhất trí cho ký thì họ sẽ khớp các mảnh khoá
riêng để nhận được khoá ký.
- Mục đích của kỹ thuật: từng thành viên của Ban đăng ký không thể tuỳ tiện cấp chữ
ký.
Kỹ thuật "chữ ký mù":
- Ban đăng ký sử dụng kỹ thuật ký "mù" để ký tên lên định danh "mù" của người đấu
giá.
Mục đích của kỹ thuật: Ban đăng ký không thể biết được ai đã ghi thông tin về
giá vào phiếu đặt giá tức là bảo đảm không lộ danh tính người đấu giá.
3.1.2. Giai đoạn đấu giá
a. Công việc:
Sau khi phiếu đặt giá có chữ ký của Ban đăng ký, người đấu giá ghi giá (đặt giá)
của mình vào phiếu đặt giá ;
Người đấu giá mã hoá phiếu đặt giá bằng khoá công khai của Ban duyệt giá.
Người đấu giá gửi tới Ban duyệt giá: phiếu đặt giá đã mã hoá, định danh thật
(không bị làm mù) của họ, chữ ký của Ban đăng ký trên phiếu đặt giá, "chứng minh
không tiết lộ thông tin" về phiếu đặt giá ;
Chú ý rằng phiếu đặt giá không được chuyển thẳng tới ban duyệt giá, mà trước
đó phải qua Ban kiểm tra. Tại đây họ kiểm tra chữ ký cấp quyền bỏ phiếu có bị giả
- Tính rõ ràng: Không có người tham gia nào có thể biết được bất kỳ thông tin
nào quanh Bộ phận duyệt giá trước Giai đoạn duyệt giá.
- Tính trung thực: Không có sự liên hiệp nào của những người đấu giá có thể phá
vỡ phiên đấu giá và bất kỳ hành vi gian lận nào cũng sẽ được phát hiện ra.
3.2. Ứng dụng chữ ký mù trong bỏ phiếu điện tử
Một qui trình bỏ phiếu điện tử thường bao gồm bốn giai đoạn chính: Giai đoạn
đăng ký, giai đoạn bỏ phiếu. giai đoạn kiểm tra và giai đoạn kiểm phiếu.
3.2.1. Giai đoạn đăng ký
a. Công việc
Cử tri:
- Cử tri chọn bí mật số định danh x, giấy chứng minh thư điện tử (CMT), thông
tin nhận. Cử tri “làm mù” x thành y = Blind(x).
- Cử tri gửi tới Ban đăng ký thông tin nhận dạng của mình, CMT, số y (định
danh x đã được họ làm mù thành y).
Ban đăng ký:
- Ban ĐK nhận dạng cử tri, Kiểm tra CMT của cử tri.
7
- Nếu hồ sơ của cử tri hợp lệ, khớp với danh sách cử tri của Ban điều hành, cử
tri chưa xin cấp chữ ký lần nào, thì ra lệnh cho Hệ thống “ký” lên y. Đó là chữ ký z =
sign(y).
- Ban đăng ký ghi số CMT của cử tri vào danh cử tri đã được cấp chữ ký (để
tránh việc cử tri đăng ký bỏ phiếu nhiều lần).
- Ban đăng ký gửi chữ ký z về cho cử tri.
Cử tri:
- Khi nhận được chữ ký này, cử tri “xóa mù” trên z, họ sẽ nhận được chữ ký
sign(x) trên định danh thật x. Lá phiếu có gắn chữ ký sign(x) được xem như đã có chữ
ký của Ban đăng ký, đó là lá phiếu hợp lệ để cử tri ghi ý kiến của mình.
Cử tri có thể kiểm tra chữ ký của Ban điều hành trên lá phiếu của mình có hợp
lệ hay không bằng cách dùng hàm kiểm tra chữ ký và khóa công khai của Ban điều
hành.
mã hoá bằng tổng các “bản tin” được mã hoá.
Điều này rất thích hợp cho loại bỏ phiếu điện tử khi mà các “bản tin” được mã
hoá thành 0 hay 1.
Mục đích của kỹ thuật: Ban kiểm phiếu không cần giải mã từng lá phiếu, vẫn có
thể kiểm phiếu được.
3.2.3. Giai đoạn kiểm tra
a. Công việc:
- Kiểm tra chữ ký cấp quyền bỏ phiếu trên lá phiếu. (liên hệ với Ban đăng ký).
- Kiểm tra tính hợp lệ của lá phiếu. (Xác nhận với Cử tri).
- Mã hóa lại lá phiếu, gửi về hòm phiếu.
- Khi gửi lá phiếu (đã mã hoá) về Ban kiểm tra, cử tri phải gửi kèm theo định
danh thật x (không bị làm mù). Như vậy Ban kiểm tra biết được chữ ký thật Sign(x)
của Ban đăng ký trên lá phiếu và định danh thật x của cử tri, nhưng không biết danh
tính thật của cử tri. Ban đăng ký biết các thông tin này, nhưng lại không biết định danh
thật x của cử tri (vì nó đã bị làm mù trước khi gửi tới họ).
Như trên đã nói, khóa ký vào định danh của cử tri được chia sẻ cho mọi thành
viên của Ban đăng ký và Ban kiểm tra. Vì vậy trong giai đoạn này, Ban kiểm tra dùng
khóa ký đó để ký lên định danh thật x của cử tri, kiểm tra xem có giống như chữ ký
Sign(x) mà cử tri đã gửi tới họ. Nếu hai chữ ký không khớp nhau, họ xem chữ ký trong
lá phiếu trên là giả mạo, lá phiếu này sẽ không được gửi tiếp tới hòm phiếu.
- Ban kiểm tra thực hiện các giao thức tương tác với cử tri để kiểm tra tính hợp
lệ của lá phiếu.
- Sau khi xác minh tính hợp lệ của lá phiếu, Ban kiểm tra gửi nó về hòm phiếu.
Ban kiểm tra đứng trung gian giữa Cử tri và Ban Kiểm phiếu để ngăn chặn một số tình
huống thiếu an toàn hay vi phạm luật bỏ phiếu, ví dụ trường hợp mua bán phiếu bầu
cử.
b. Kỹ thuật sử dụng:
Kỹ thuật “ Ký số ” ( Digital Signature):
- Mục đích của kỹ thuật: kiểm tra chữ ký cấp quyền bỏ phiếu trên lá phiếu.
Kỹ thuật “Chứng minh không tiết lộ thông tin”( Zero_knowledge proof)
- Mục đích của kỹ thuật: ở giai đoạn sau, Ban kiểm tra có cơ sở để xác minh
tính hợp lệ của lá phiếu. Vì dưới dạng mã hoá, nên không thể biết lá phiếu có hợp lệ
không.
3.3. Ứng dụng chữ ký mù trong thương mại điện tử
Các bước của quá trình thanh toán điện tử dưới hình thức sử dụng tiền điện tử,
có chữ ký của đơn vị phát hành tiền điện tử. Quy trình thanh toán điện tử gồm 4 pha
sau:
Pha 1. Tạo tiền điện tử (tương ứng với giao thức rút tiền)
Phía A (người rút tiền):
10
- Sinh số ngẫu nhiên N làm số Serial của đồng tiền các số này phải đủ dài và
đảm bảo tính duy nhất, tránh việc hai serial trùng nhau.
- Gắn mỗi Serial với một giá trị đồng tiền
- Làm mù giá trị N trên một số ngẫu nhiên bí mật r, mã hóa bằng khóa công
khai của ngân hàng và gửi cho ngân hàng giá trị của đồng tiền và Serial đã được mù
hóa.
Ngân hàng:
- Sau khi nhận được các thông tin từ A sẽ thực hiện
- Kiểm tra tài khoản của A có đủ để rút đồng tiền anh ta yêu cầu hay không?
- Nếu tài khoản của A còn đủ tiền, ký mù lên Serial đã được làm mù với khóa bí
mật tương ứng với giá trị đồng tiền.
- Trừ đi một khoản tiền tương ứng trong tài khoản của A.
- Mã hóa đồng tiền đã được ký mù mới khóa công khai của A và gửi cho A.
- A khử mù đồng tiền và thu được đồng tiền có chữ ký hợp lệ của ngân hàng.
Pha 2. Tiêu tiền điện tử (tương ứng giao thức trả tiền)
- A gửi yêu cầu mua hàng đến B
- B gửi trả về thông tin sản phẩm, số tiền cần thanh toán cho A
- Sau khi A chấp nhận giao dịch, A gửi các đồng tiền điện tử cho B.
Pha 3. Đổi tiền điện tử (tương ứng giao thức gửi tiền)
- Trước khi chấp nhận thanh toán, B gửi đồng tiền nhận được đến ngân hàng để
12
- Hiển thị thông tin về ví tiền điện tử và số tiền trong tài khoản. Tại đây người
sử dụng chọn đồng tiền tiện tử cần rút về.
Chọn đồng tiền điện tử muốn rút về ví
13
- Thông báo nhập tham số lien quan của đồng tiền
14
- Nhập giá trị làm mù r
15
- Đồng tiền được ký mù và được nhận về và xóa mù
16
Đồng tiền được cập nhật vào trong ví tiền điện tử của khách hàng, đồng thời tài
khoản của khách hàng bị trừ đi một khoản tương ứng với số tiền rút.
17