Khóa luận Phương pháp chứng minh không tiết lộ thông tin và ứng dụng trong giao dịch trên mạng máy tính

ĐẠI HC QUC GIA HÀ NI  
TRƢỜNG ĐẠI HC CÔNG NGHỆ  
Vũ Quang Hòa  
PHƢƠNG PHÁP CHỨNG MINH KHÔNG TIT  
LTHÔNG TIN VÀ NG DNG TRONG  
GIAO DCH TRÊN MNG MÁY TÍNH  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bộ hƣớng dn : PGS.TS Trnh Nht Tiến  
Cán bộ đồng hƣớng dẫn : ThS. Đặng Thu Hin  
HÀ NI - 2010  
LI CẢM ƠN  
Trƣớc hết em xin gi li cảm ơn đến PGS.TS Trnh Nht Tiến, ngƣời thầy đã  
hƣớng dn em phát trin khóa lun này tlý thuyết đến ng dng. Sự hƣớng dn ca  
thầy đã giúp em có thêm đƣợc nhng hiu biết sâu rng vmt svấn đề liên quan  
đến bo mật thông tin. Qua đó, những lý thuyết bo mật cũng lôi cuốn em và strở  
thành hƣớng nghiên cu tiếp ca em sau khi tt nghip.  
Em xin gi li cảm ơn đến cô Đặng Thu Hiền đã giúp em hoàn thành luận văn  
mt cách tt nht. Từ đó, em có đƣợc nhng hiu biết mới cũng nhƣ hoàn thành khóa  
lun mt cách tt nht.  
Đồng thời em cũng xin chân thành cảm ơn các thầy cô trong bmôn nói riêng  
cũng nhƣ các thầy cô trong khoa Công Nghnói chung. Nếu không có các thy, các cô  
và khoa thì em không thhoàn thành tt luận văn này đƣợc.  
Em xin gi li cảm ơn đến các thành viên lp K51CA, những ngƣời đã tìm hiểu  
và cùng em phát triển cơ sở công nghệ để xây dng nên ng dng nêu trong khóa lun  
này.  
Sau cùng, em xin gi li cảm ơn đến gia đình, bạn bè đã tạo mọi điều kiện để em  
xây dng thành công luận văn này.  
Hà Nội, tháng 5 năm 2010  
Sinh viên thc hin  
VŨ QUANG HÕA  
MỤC LỤC  
1.1.3 Không gian Zn..............................................................................................3  
*
1.1.4 Nhóm nhân Zn ............................................................................................5  
*
1.1.7 Các thut thoán trong Zn .............................................................................7  
*
1.1.8 Tính căn bậc bt ktrong Zn ......................................................................9  
DANH MỤC TỪ VIẾT TẮT  
Gii thích  
Ký hiu viết tt  
CT  
Ctri  
gcd(m, n)  
KP  
Ƣớc chung ln nht  
Kim phiếu  
Prover  
TT  
Ngƣời chng minh  
Ngƣời trung thc  
Ngƣời xác minh  
Verifier  
LỜI NÓI ĐẦU  
Ngày nay Internet đã trở thành một phần không thể thiếu trong mỗi ngƣời dân  
Việt Nam nói riêng cũng nhƣ mỗi ngƣời dân trên thế giới nói riêng. Thông tin không  
ngừng đƣợc trao đổi, mua bán,…trên mạng Internet, cũng chính vì lý do này mà việc  
bảo mật, đảm bảo an toàn thông tin đang là nhu cầu cấp thiết. Trƣớc các yêu cầu cần  
thiết đó, lý thuyết về mật mã thông tin đã ra đời nhằm đảm bảo tính an toàn dữ liệu tại  
nơi lƣu trữ cũng nhƣ khi dữ liệu đƣợc truyền trên mạng.  
Khoá luận này tập trung vào nghiên cứu các khái niệm cơ bản, cơ sở lý thuyết  
toán học modulo sử dụng trong bảo mật thông tin, các phƣơng pháp “chứng minh  
không tiết lộ thông tin” và đặc biệt là ứng dụng của “chứng minh không tiết lộ thông  
tin” trong bỏ phiếu thăm dò từ xa.  
Chứng minh không tiết lộ thông tin đã đƣợc nghiên cứu từ những năm 80, là  
phƣơng pháp chứng minh không có nghĩa là “không để lộ thông tin” mà “để lộ thông  
tin ở mức ít nhất” về sự vật, sự việc cần chứng minh. Với việc “không để lộ” ngƣời  
xác minh sẽ không có nhiều hiểu biết về sự vật sự việc, họ chỉ thu đƣợc chút ít thông  
tin (coi nhƣ là không) về đặc điểm tính chất của nó.  
Ngành mật mã học luôn phát triển không ngừng, trong phạm vi khóa luận này,  
chúng tôi chỉ trình bày về một vấn đề nhỏ là phƣơng pháp “chứng minh không tiết lộ  
thông tin” đồng thời tìm hiểu một số ứng dụng thực tế của cơ sở lý thuyết này.  
1
 
Chương 1 : CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN  
Chƣơng này trình bày các vấn đề cơ bản trong toán học đƣợc ng dng nhiu  
trong các bài toán an toàn thông tin. Đó là các vấn đề vlý thuyết toán hc sdng  
trong bo mật và mã hóa thông tin nhƣ : Mã hóa đồng cu, chký mù, chia sbí mt  
ngƣỡng Shamir và mã hóa Elgamal. Thông qua đó hình thành cơ sở lý thuyết cho an  
toàn truyn tin trên mng máy tính.  
1.1 LÝ THUYẾT MODULO  
1.1.1 Hàm phi Euler  
1/ Định nghĩa  
Cho n >= 1, Φ(n) đƣợc định nghĩa là số các snguyên trong khong t[1, n]  
nguyên tcùng nhau vi n. Hàm Φ (n) đƣợc gi là hàm Euler phi.  
2/ Tính chất của hàm Euler  
Nếu p là snguyên tthì Φ (n) = p – 1.  
Hàm phi Euler là hàm có tính nhân : Nếu gcd(m, n) = 1 thì Φ(mn) = Φ(m) Φ(n)  
(trong đó gcd(m, n) là ký hiệu ƣớc schung ln nht ca m n)  
e1 e2  
Nếu n = p1 p2 …pkek trong đó p1, p2, ..., pk là các tha snguyên tca n thì:  
1
1
1
Φ(n) = n(1 -  
)(1 -  
)… (1 -  
)
p1  
p2  
pk  
1.1.2 Đồng dƣ thức  
1/ Định nghĩa  
Cho a b là các snguyên, a đƣợc gọi là đồng dƣ với b theo modulo n, ký hiu:  
a b (mod n) nếu (a b) chia hết cho n. Snguyên n đƣợc gọi là modulus đồng dƣ.  
2/ Ví dụ  
10 3 (mod 7) vì 10 3 = 7 chia hết cho 7  
7 -4 (mod 11) vì 7 (-4) = 11 chia hết cho 11  
2
       
3/ Tính chất của đồng dư  
Cho a, a1, b, b1, c Z. Ta có các tính cht sau:  
a b (mod n) nếu và chnếu a b cùng có số dƣ khi chia cho n  
a a (mod n) Tính phn xạ  
a b (mod n) thì b a (mod n) – Tính đối xng  
a b (mod n) b c (mod n) thì a c (mod n) Tính bc cu  
nếu a a1 (mod n) b b1 (mod n) thì :  
a + b a1 + b1 (mod n)  
a.b a1.b1 (mod n)  
Quan hệ “đồng dƣ” theo modulo n trên tp Z (tp các snguyên) là mt quan hệ  
tƣơng đƣơng (vì có tính chất phn xạ, đối xng, bc cầu), do đó nó tạo ra trên tp mt  
phân hoch gm các lớp tƣơng đƣơng : hai snguyên thuc cùng mt lớp tƣơng  
đƣơng khi và chỉ khi chúng có cùng mt số dƣ khi chi cho n.  
Mi lớp tƣơng đƣơng đại din bi mt sduy nht trong tp Zn = {0, 1, 2, … , n-1}  
là số dƣ khi chia các số trong lp cho n, ký hiu mt lớp đƣợc đại din bi sa [a]n:  
Nhƣ vậy : [a]n = [b]n tƣơng đƣơng với a b (mod n)  
Vì vy ta có thể đng nht Zn vi tp các lớp tƣơng đƣơng theo modulo n.  
Zn = {0, 1, 2, … , n-1} đƣợc gi là tập các “thặng dƣ đầy đủ” theo modulo n. Mi  
snguyên bt kỳ đều có thể tìm đƣợc trong Zn mt số đồng dƣ với mình theo  
modulo n.  
1.1.3 Không gian Zn  
1/ Các định nghĩa trong không gian Zn  
Các snguyên theo modul n ký hiu Zn là tp hp các snguyên {0,1,2,…, n-1}.  
Các phép toán cng, tr, nhân trong Zn đƣợc thc hin theo modulo n.  
2/ Ví dụ  
Z25 = {0,1,2,…,24}. Trong Z25 : 13 + 16 = 4, bi vì: 13 + 16 = 29 4 (mod 25).  
Tƣơng tự, 13*16 = 8 trong Z25  
- Cho aZn. Nghịch đảo nhân ca a theo modulo n là mt snguyên x Zn sao  
cho a*x 1 (mod n). Nếu x tn tại thì đó là giá trị duy nht và a đƣợc gi là khả  
nghch, nghịch đảo ca a ký hiu là a-1.  
3
 
- Cho a, bZn . Phép chia ca a cho b theo modulo n là tích ca a b-1 theo  
modulo n, và chỉ dƣợc xác định khi b có nghịch đo theo modulo n.  
3/ Các tính chất trong không gian Zn  
- Cho a Zn , a có nghịch đo khi và chkhi gcd(a, n) = 1 trong đó :  
gcd(a, n) (greatest common divisor) là ký hiệu ƣớc schung ln nht ca a n  
Ví d:  
Các phn tkhnghch trong Z9 là: 1, 2, 4, 5, 7 và 8.  
Ví d4-1 = 7 vì 4 .7 1 (mod 9)  
Tiếp theo là stng quát hoá ca tính cht 1.6  
- Gisd = gcd(a, n). Phƣơng trình đồng dƣ ax b (mod n) có nghim x nếu và  
chnếu d chia hết cho b, trong trƣờng hp các nghim d nm trong khoảng 0 đến  
n-1 thì các nghiệm đồng dƣ theo modulo n/d.  
4/ Định lý phần dư Trung Hoa CRT  
Nếu các snguyên n1, n2, …, nk là các snguyên tcùng nhau từng đôi một thì  
hệ phƣơng trình đồng dƣ :  
x a1 (mod n1 )  
x a2 (mod n2 )  
…..  
x ak (mod nk )  
có nghim duy nht theo modulo n = n1n2 … nk  
5/ Thuật toán của Gausse  
Nghim x trong hệ phƣơng trình đồng dƣ (định lý phần dƣ Trung Hoa) đƣợc tính  
nhƣ sau :  
k
x =  
ai NiMi mod n  
i1  
trong đó: Ni = n/ni, Mi = Ni-1 mod ni  
4
Ví d:  
Cặp đồng dƣ: x 3 (mod 7) và x 7 (mod 13) có nghim duy nht  
x 59 (mod 91)  
Tính cht :  
Nếu gcd(n1, n2) = 1 thì cặp đồng dƣ x a (mod n1) x a (mod n2) có nghim  
duy nht x a (mod n1n2)  
*
1.1.4 Nhóm nhân Zn  
1/ Các định nghĩa trong nhóm nhân Z*  
n
Nhóm nhân ca Zn ký hiu là Z* = {a Zn | gcd (a, n) = 1}.  
n
Đặc bit, nếu n snguyên tthì Z* = {aZn | 1 ≤ a ≤ n-1}  
n
*
Cho aZn . Bc ca a, ký hiu là ord(a) là số nguyên dƣơng t nhnht sao cho  
at 1 (mod n).  
*
2/ Các tính chất trong Zn  
- Cho n ≥ 2 là số nguyên :  
*
(Định lý Euler) Nếu a Zn thì aΦ(n) 1 (mod n).  
Nếu n là tích ca các snguyên tphân bit và nếu r s (mod Φ(n))  
ar as (mod n) vi mi snguyên a. Nói cách khác, làm vic vi các stheo  
modulo nguyên tp thì số mũ có thể gim theo modulo Φ(n)  
- Cho p snguyên t:  
(Định lý Fermat) Nếu gcd(a, p) = 1 thì ap-1 1 (mod p).  
Nếu r s (mod p-1) thì ar as (mod p) vi mi snguyên a. Nói cách khác,  
làm vic vi các stheo modulo nguyên tp thì số mũ có thể gim theo  
modulo p-1  
Đặc bit ap a (mod p) vi mi snguyên a.  
5
 
1.1.5 Thặng dƣ  
1/ Định nghĩa thặng dư  
*
Cho aZn . a đƣợc gi là thặng dƣ bậc 2 theo modulo n hoặc bình phƣơng theo  
*
modulo n nếu tn ti xZn sao cho x2 a (mod n). Nếu không tn ti x thì a đƣợc gi  
là thặng dƣ không bậc 2 theo modulo n. Tp hp các thặng dƣ bậc 2 theo modulo n ký  
___  
hiu là Qn và tp hp các thặng dƣ không bậc 2 theo modulo n ký hiu là  
Q
.
n
___  
*
Chú ý vì định nghĩa 0 Zn nên 0 Qn 0   
Q
n
2/ Tính chất của thặng dư  
*
Cho n là tích ca 2 snguyên tp q. Khi đó a Zn là mt thặng dƣ bậc 2 theo  
modulo n khi và chkhi a Qn a ___  
Q
n. Ta có, |Qn| = |Qp|.|Qq| = (p-1)(q-1)/4 và  
___  
|
Q
n| = 3(p-1)(q-1)/4  
3/ Ví dụ  
Cho n = 21. Khi đó: Q21 = {1, 4, 16} và  
___  
Q
21 = {2, 5, 8, 10, 11, 13, 17, 19, 20}  
1.1.6 Căn bậc Modulo  
1/ Định nghĩa  
*
Cho a Qn . Nếu a Zn thomãn x2 a (mod n) thì x đƣợc gọi là căn bậc 2 ca  
a theo modulo n.  
2/ Tính chất (Số căn bậc 2)  
Nếu p là mt snguyên tlthì a Qn thì a có chính xác 2 căn bậc 2 theo  
modulo p  
e1  
ek  
Tổng quát hơn: cho n = p1 p2 e2…pk trong đó pi là các snguyên tlphân  
bit và ei ≥1. Nếu a Qn thì a có chính xác 2k căn bậc 2 theo modulo n.  
3/ Ví dụ  
Căn bậc 2 của 13 theo modulo 37 là 7 và 30. căn bậc 2 ca 121 modulo 315 là  
11, 74, 101, 151, 164, 214, 241 và 304.  
6
   
*
1.1.7 Các thuật thoán trong Zn  
1/ Định nghĩa  
Cho n là số nguyên dƣơng. Nhƣ đã nói ở trƣớc, các phn ttrong Zn sẽ đƣợc thể  
hin bi các số nguyên {0, 1, 2,…, n-1}. Ta thy rng: nếu a, b Zn thì:  
a + b nếu a + b < n  
(a + b) mod n=  
a + b n nếu a + b ≥ n  
Vì vy, phép cng modulo (và phép trmodulo) có thể đƣợc thc hin mà không  
cn thc hin các phép chia . Phép nhân modulo ca a b có thể đƣợc thc hin bng  
phép nhân thông thƣờng a vi b nhƣ các số nguyên bình thƣờng, sau đó lấy phần dƣ  
ca kết qusau khi chia cho n. Phép tính nghịch đảo trong Zn có thể đƣợc thc hin  
nhsdng thut toán Euclidean mrộng nhƣ mô tả sau:  
2/Thuật toán tính nghịch đảo nhân trong Zn  
INPUT: a Zn  
OUTPUT: a-1 mod n nếu tn ti.  
1. Sdng thut toán Euclidean mrộng sau để tìm các snguyên x y  
sao cho: ax + ny = d vi d = gcd(a, n).  
2. Nếu d > 1 thì a-1 mod n không tn tại. Ngƣợc li, return (x).  
3/ Thuật toán Euclidean mở rộng:  
INPUT: 2 số nguyên dƣơng a b vi a ≥ b.  
OUTPUT: d = gcd(a, b) và các snguyên x, y thomãn: ax + by = d  
1. Nếu b = 0 thì đt d a, x 1, y 0 và return (d, x, y)  
2. Đặt x2 1, x1 0, y2 0, y1 1  
3. Khi b > 0 thc hin:  
3.1. q [a/b], r = a qb, x x2 qx1, y y2 qy1  
3.2. a b, r b, x2 x1, x1 x, y2 y1, y1 y  
4. Đặt d a, x x2, y y2 và return (d, x, y)  
7
 
Số mũ modulo có thể đƣợc tính mt các hiu qubng thuật toán bình phƣơng và  
nhân liên tiếp, nó đƣợc sdng chyếu trong nhiu giao thc mã hoá. Mt phiên bn  
ti0  
ca thuật toán này nhƣ sau: Giả sbiu din nhphân ca k là  
ki {0,1}.  
ki2i vi  
4/ Thuật toán bình phương liên tiếp để tính số mũ modulo trong Zn.  
INPUT: a Zn và số nguyên dƣơng 0 ≤ k < n trong đó k có biu din nhphân  
t
là: k =  
ki 2i  
i0  
OUTPUT: ak mod n  
1. Đặt b 1. Nếu k = 0 return (b)  
2. Đặt A a  
3. Nếu k0 = 1 thì đặt b a.  
4. For i = 1 to t do  
Đặt A A2 mod n  
Nếu ki = 1 thì b A . b mod n  
5. Return (b).  
Ví d: (Tính số mũ modulo)  
Bng 1 : Mô tả các bước tính : 5596 mod 1234 = 1013  
I
0
0
1
0
2
1
3
0
4
1
5
0
6
1
7
0
8
0
9
1
ki  
A
B
5
1
25  
1
625 681 1011 369 421 779 947 925  
625 625 67 67 1059 1059 1059 1013  
8
 
Độ phc tp theo bit của các phép toán cơ bản trong Zn đƣợc trình bày trong bng sau:  
Bng 2 : Độ phc tp theo bit của các phép toán bn trong Z  
Độ phc tp vbit  
Phép toán  
Cng modulo (a + b) mod n  
Trmodulo (a - b) mod n  
Nhân modulo (a b) mod n  
Nghịch đảo theo modulo a-1 mod n  
Số mũ modulo ak mod n, k < n  
O(lg n)  
O(lg n)  
O((lg n)2)  
O((lg n)2)  
O((lg n)3)  
*
1.1.8 Tính căn bậc bất kỳ trong Zn  
*
Sdng tính cht trong Zn : Nếu n là tích ca các snguyên tphân bit và nếu  
r s (mod Φ(n)) ar as (mod n) vi mi snguyên a. Nói cách khác, làm vic vi các  
stheo modulo nguyên tp thì số mũ có thể gim theo modulo Φ(n) để tính căn bậc k  
trong Zn :  
Gistính  
y
trong không gian Zn. Áp dng công thc  
y
= y1/x yz (mod n).  
x
x
Theo tính cht trên thì ta phi có 1/x z (mod Φ(n) ). Sdng thut toán Euclidean mở  
yz (mod n). Sdng  
x
rộng để tính nghch đảo nhân z = 1/x trong ZΦ(n). Do đó:  
y
thuật toán bình phƣơng liên tiếp để tính số mũ modulo yz trong Zn.  
Ví d:  
7
Tính  
5
trong Z13  
(mod 13) 51/7 ( mod 12 ) (mod 13) = 57 (mod 13) = 8   
5
= 8  
7
7
5
9
   
1.2 VẤN ĐỀ MÃ HÓA  
Mặc dù mã hoá đã đƣợc sdng trt lâu trong các hoạt động ngoi giao và  
quân sự nhƣng chỉ sau khi bài báo "Lý thuyết truyn tin trong các hthng bo mt"  
ca Claude Shannon [10] ra đời nó mi trthành mt môn khoa học. Trƣớc đó các vấn  
đề vmã hoá, mt mã gần nhƣ là một môn "nghthut".  
Mã hoá là phn rt quan trng trong vấn đề bo mt. Mã hoá ngoài nhim vụ  
chính là làm cho tài liệu an toàn hơn, nó còn có một li ích quan trng là : thay vì  
truyền đi tài liệu thô (không đƣợc mã hoá) trên một đƣờng truyền đặc biệt, đƣợc canh  
phòng cn mật không cho ngƣời nào có thể “xâm nhập” vào lấy dliệu, ngƣời ta có  
thtruyn mt tài liệu đã đƣợc mã hoá trên bt cứ đƣờng truyn nào mà không lo dữ  
liu bị đánh cắp vì nếu dliêu có bị đánh cắp đi nữa thì dliệu đó cũng không dùng  
đƣợc.  
Mt skhái nim liên quan :  
- Thut toán mã hoá/ gii mã : là thuật toán dùng để chuyn thông tin thành dữ  
liu mã hoá hoặc ngƣợc li.  
- Khoá : là thông tin mà thut toán mã/ gii mã sdụng để mã hóa/ gii mã thông  
tin. Mi khi một thông tin đã đƣợc mã hoá thì chcó những ngƣời có khoá thích  
hp mi có thgii mã. Nếu không thì dù dùng cùng mt thut toán gii mã  
nhƣng cũng không thể phc hi li thông tin ban đầu. Đây là đặc điểm quan  
trng ca khoá : mã hoá chphthuc vào khoá mà không phthuc vào thut  
toán mã/ giải mã. Điều này giúp cho mt thut toán mã/ gii mã có thể đƣợc sử  
dng rng rãi.  
Vi hình thc khá phbiến hin nay là truyền tin qua thƣ điện tvà không sử  
dng các công cmã hoá, bo mật cũng nhƣ chữ ký điện tthì các tình hung sau có  
thxy ra :  
- Không chngui nhận mà ngƣời khác có thể đọc đƣợc thông tin.  
- Thông tin mà ta nhận đƣc có thkhông phi là của ngƣời gửi đúng đắn.  
- Thông tin nhận đƣợc bị ngƣời thba sửa đi.  
- Bnghe trộm: thông tin đƣợc truyền đi trên đƣờng truyn có thbị ai đó “xâm  
nhập” vào lấy ra, tuy nhiên vẫn đến đƣợc ngƣời nhn mà không bị thay đổi.  
10  
 
- Bị thay đổi : thông tin bchn li một nơi nào đó trên đƣờng truyn và bthay  
đổi. Sau đó thông tin đã bị thay đổi này đƣợc truyn tới cho ngƣời nhận nhƣ  
không có chuyn gì xy ra.  
- Bly cp : thông tin blấy ra nhƣng hoàn toàn không đến đƣợc ngƣời nhn.  
Khi đó thì khỏi nói đến thƣơng mại điện t, chính phủ điện tvi nn qun lý  
hành chính điện tử, vv và vv. Để gii quyết vấn đề này, thông tin trƣớc khi truyền đi sẽ  
đƣợc mã hoá và khi tới ngƣời nhn, nó sẽ đƣc gii mã trli.  
Để đảm bo rng chỉ ngƣời cn nhn có thể đọc đƣợc thông tin mà ta gi khi biết  
rng trên đƣờng đi, nội dung thông tin có thbị theo dõi và đọc trộm, ngƣời ta sdng  
các thuật toán đặc biệt để mã hoá thông tin. Trong trƣờng hợp này, trƣớc khi thông tin  
đƣợc gửi đi, chúng sẽ đƣợc mã hoá li và kết qulà ta nhận đƣợc mt ni dung thông  
tin "không có ý nghĩa". Khi thông điệp btheo dõi hoc bbt giữ trên đƣờng đi, để  
hiểu đƣợc thông tin ca bn, ktn công phi làm mt vic là gii mã nó. Thut toán  
mã hoá càng tt thì chi phí cho giải mã đối vi ktn công càng cao. Khi chi phí gii  
mã cao hơn giá trị thông tin thì coi nhƣ bạn đã thành công trong vấn đề bo mt.  
Các thuật toán mã hoá thông tin khá đa dạng nhƣng có thể chia ra làm hai hƣng:  
1.2.1 Mã hoá đối xứng  
Là loi mã hoá chdùng 1 khoá cho cvic mã hoá và gii mã.  
1/ Ưu điểm  
- Tc độ mã/ giải mã nhanh. Đây là ƣu điểm ni bt của mã đối xng.  
- Sdụng đơn giản : chcn dùng mt khoá cho cả 2 bƣớc mã và gii mã.  
2/ Nhược điểm  
- Đòi hỏi khoá phải đƣợc 2 bên gi/ nhn trao tn tay nhau vì không thtruyn  
khoá này trên đƣờng truyn mà không đƣợc bo vệ. Điều này làm cho vic sử  
dng khoá trnên không thc tế.  
- Không an toàn : càng nhiều ngƣời biết khoá thì độ ri ro càng cao.  
- Trong trƣờng hợp khoá mã hoá thay đổi, cần thay đổi đồng thi cả ngƣời gi  
và ngƣời nhận, khi đó rất khó có thể đảm bảo đƣợc là chính bn thân khoá không  
bị đánh cắp trên đƣờng đi  
- Không cho phép ta to ra chữ ký điện t.  
11  
 
3/ Một số thuật toán mã hoá đối xứng  
- DES : 56 bit, không an toàn. Có thddàng bbkhoá trong khong vài phút.  
- Triple DES, DESX, GDES, RDES: mrộng độ dài ca khoá mã DES lên ti  
168 bit.  
- RC2, RC4, RC5: độ dài khoá có thlên ti 2048 bit.  
- IDEA (International Data Encryption Algorithm) : 128 bit, thƣờng dùng trong  
các chƣơng trình email.  
1.2.2 Mã hoá không đối xứng  
Là loi mã hoá dùng mt khoá để mã hoá (thƣờng gi là khoá công khai - public  
key) và dùng một khoá khác để giải mã (thƣờng gi là khoá riêng - private key).  
1/ Ưu điểm  
Đây là loại mã hoá đƣợc sdng chyếu trên Internet. Một ngƣời mun sdng  
loi mã hoá này cn to ra mt cp khoá công khai/ bí mt. Anh ta có thtruyn khoá  
công khai ca mình ti bt cai mun giao tiếp vi anh ta mà không sợ ngƣời khác  
ly khoá này. Cô ta sẽ mã hoá thông điệp ca mình bằng khoá công khai đó và gửi ti  
cho anh ta. Dĩ nhiên là chỉ mình anh ta vi khoá bí mt ca mình mi có ththấy đƣợc  
thông điệp của cô. Nhƣ vậy ktn công, cho dù có biết ni dung ca khoá công khai  
và ni dung của thông tin đã bị mã hoá vn không thgiải mã đƣợc thông tin. Lý do là  
tính ngƣợc khoá bí mt tkhoá công khai hoc là rt khó, nếu không nói là không th.  
Điều này đạt đựơc trên nguyên tắc sdng các hàm mt chiu trong toán hc khi tính  
hàm y=f(x) là đơn giản nhƣng ngƣợc li vic tính giá trị y khi đã biết x là rất khó khăn.  
2/ Nhược điểm  
Tốc độ mã hoá chm : tc độ mã hoá nhanh nht ca loi mật mã không đối xng  
vn chậm hơn nhiều ln so vi mật mã đối xứng. Do đó ngƣời ta thƣờng kết hp 2 loi  
mã hoá để nâng tốc độ mã hoá lên.  
3/ Một số thuật toán mã hoá không đối xứng  
- RSA : Hệ mã này đƣợc dùng nhiu nht cho web và chƣơng trình email. Độ dài  
khoá thông thƣờng là từ 512 đến 1024 bit. [8]  
- Elgamal : 512 đến 1024 bit.  
12  
 
1.3 VẤN ĐỀ KÝ ĐIỆN TỬ (DIGITAL SIGNATURE)  
1.3.1 Khái niệm  
Nếu vic sdng mật mã đã trở nên phbiến, không chỉ trong quân đội mà còn  
trong thƣơng mi và nhng mục đích cá nhân thì những đoạn tin và tài liệu điện tsẽ  
cn nhng chký giống nhƣ các tài liệu giy.  
Cũng giống nhƣ trong thực tế, chữ ký để xác nhận cho ngƣời nhn rng bức thƣ  
đó do ngƣời này gi mà không phi ai khác. Chữ ký điện tsdng thut toán mã  
không đối xứng để định danh ngƣời gửi. Thông thƣờng, để bo vệ các văn bản mã hoá  
ngƣời ta dùng chữ ký điện t. Vic ng dng chữ ký điện tử cũng nhƣ công nhận giá  
trpháp lý của nó là điều kin tiên quyết cho thƣơng mại điện t. Nếu nhƣ việc giả  
mo chký viết tay hoc con dấu là không đơn giản thì vic làm gimột đoạn thông  
tin nào đó là rất dễ dàng. Vì lý do đó, bạn không thquét chký của mình cũng nhƣ  
con du tròn của công ty để chng trng tài liu mà bn truyền đi đúng là ca bn.  
Khi bn cn "ký " một văn bản hoc mt tài liệu nào đó, thủ tục đầu tiên là to ra  
chữ ký và thêm nó vào trong thông điệp. Có thhình dung thtục này nhƣ sau. Phần  
mm mã hoá mà bn sdng sẽ đọc nội dung văn bản và to ra mt chui thông tin  
đảm bo chỉ đặc trƣng cho văn bản đó mà thôi. Bất kmột thay đổi nào trong văn bản  
skéo theo sự thay đổi ca chuỗi thông tin này. Sau đó phần mềm đó sẽ sdng khoá  
bí mt ca bạn để mã hoá chui thông tin này và thêm nó vào cuối văn bản nhƣ một  
động tác ký (Bn có ththy là chúng ta hoàn toàn không mã hoá nội dung văn bản,  
chỉ làm động tác ký mà thôi). Khi nhận đƣợc văn bản, ngƣời nhn lp lại động tác to  
ra chuỗi thông tin đặc trƣng, sau đó sử dng khoá công khai mà bạn đã gửi để kim tra  
chữ ký điện tử có đúng là của bn không và nội dung thông điệp có bị thay đổi hay  
không.  
Thuật toán mã hoá không đối xứng đầu tiên và ni tiếng hơn cả có tên gi là  
RSA (đƣợc ghép tchữ cái đầu tiên ca tên ba tác gilà Rivest, Shamir, Adleman).  
Thuật toán RSA cũng đƣợc áp dụng để to ra chký RSA.  
1.3.2 Quá trình tạo ra chữ ký điện tử  
1. To mt câu ngn gọn để nhn dng dụ nhƣ “Tôi là sinh viên Công Nghệ”  
2. Mã hoá nó bng khoá bí mt ca mình to ra chữ ký điện t.  
3. Gn chữ ký này vào thông điệp cn gi ri và mã hoá toàn bbng khoá công  
khai của ngƣời nhn.  
13  
     
4. Gửi thông điệp đi.  
Ngƣời nhn sdùng khoá bí mt của mình để giải mã thông điệp và ly chký  
ra. Sau đó họ sgii mã chký này bng khoá công khai của ngƣời gi. Chỉ ngƣời gi  
nào có khoá bí mt phù hp mi có thto ra chữ ký mà ngƣời nhn gii mã thành  
công. Do đó ngƣời nhn có thể định danh ngƣời gi.  
Tuy nhiên chữ ký điện tto ra theo cách này vẫn chƣa dùng đƣợc. Nó có thbị  
cắt và dán vào thông điệp khác mà không cn phi biết khoá bí mt.  
1.3.3 Hàm băm sử dụng trong ký điện tử  
Một thông điệp đƣợc đƣa qua hàm băm sẽ to ra mt giá trị có độ dài cố định và  
ngắn hơn đƣợc gọi là “đại diện” hay “bản tóm tắt”. Mỗi thông điệp đi qua một hàm  
băm chỉ cho duy nht một “đại diện” và ngƣợc li : rt khó có thể tìm đƣợc hai thông  
điệp khác nhau mà có cùng “đại diện” khi đi qua cùng một hàm băm.  
Hàm băm thƣờng kết hp vi chữ ký điện tử ở trên để to ra mt loi chđin  
tvừa an toàn hơn (không thể ct/ dán) va có thể dùng để kim tra tính toàn vn ca  
thông điệp. Các bƣớc đtao ra chữ ký điện tử nhƣ vậy đƣợc trình bày nhƣ sau :  
1. Đƣa thông điệp cn gửi qua hàm băm tạo ra đại diện cho thông điệp đó .  
2. Mã hoá đại din bng khoá bí mt của ngƣời gửi để to ra chữ ký điện t.  
3. Mã hoá toàn bộ thông điệp và chký bng khoá công khai của ngƣời nhn và  
gửi đi  
Ngƣời nhn sgiải mã thông điệp bng khoá bí mt ca mình, gii mã chký  
bng khoá công khai của ngƣời gửi để lấy đại diện ra. Sau đó cho thông điệp qua hàm  
băm để to lại đại din của thông điệp ri so sánh với đại din nhận đƣợc : nếu ging  
nhau thì ngƣời nhn có thvừa định danh ngƣời gi va kim tra tính toàn vn ca  
thông điệp.  
1.3.4 Một số hàm băm thƣờng gặp  
- MD5 (Message Digest): 128 bit, nhanh, đƣợc sdng rng rãi.  
- SHA (Secure Hash Algorithm): 160 bit  
14  
   
1.4 CHỮ KÝ MÙ  
1.4.1 Khái niệm  
Theo phƣơng thức bphiếu truyn thng, ctri mang chứng minh thƣ và lá  
phiếu chƣa có nội dung gì đến bàn đóng dấu. Ở đó ngƣời ta kim tra giy tờ để xác  
định quyn bphiếu, sau đó họ đóng dấu xác thc trên lá phiếu. Ctri ct chng minh  
thƣ vào phòng bỏ phiếu, nhƣ vậy lá phiếu hoàn toàn không có thông tin định danh.  
Quá trình bphiếu này đƣợc gọi là “nặc danh”.  
1.4.2 Kỹ thuật chữ ký mù RSA  
- GisBan kim phiếu (KP) dùng sơ đồ chký RSA (n, p, q, b, a).  
Nếu ctri (CT) chuyn ngay Số định danh x ca mình cho Ban KP thì snhn  
đƣợc chký là E(x) = x a (mod n). CT không làm nhƣ vậy !  
- Ctri CT che du Số định danh x bng bí danh y:  
y = Blind(x) = x * rb (mod n).  
(Trong đó r đƣợc chn sao cho tn ti phn tnghịch đảo r -1 (mod n)).  
Ctri CT gi bí danh y cho Ban KP.  
Ban KP ký trên bí danh y đƣợc chz:  
z = E(y) = E(Blind(x)) = E(x * rb) = (x * rb) a = xa * (rb)a = xa * r .  
Ban KP gi chz cho ctri CT.  
- Cử tri CT “xoá mù” trên z sẽ nhận đƣợc chký trên Số định danh x:  
Unblind(z)=Unblind(E(blind(x)))=Unblind(xa * r)= (xa * r) * r -1 = x a (mod n).  
Cử tri CT đã có đƣợc chkí của Ban KP trên x, đó là xa (mod n).  
15  
     
Chương 2 : PHƢƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG  
TIN  
2.1 KHÁI NIỆM PHÉP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN  
2.1.1 Khái niệm phép chứng minh  
Trong toán hc và cuc sống, chúng ta thƣờng mun chng minh mt vấn đề gì  
đó cho ngƣời khác hiểu. Điển hình, nếu nhƣ tôi biết X đúng, và tôi muốn chng minh  
điều này cho bn, tôi cgng hết sức để sdng những điều đã có và những điều liên  
quan để chng minh rằng X đúng.  
Ví d: Tôi biết rng 26781 không là snguyên tbi nó gp 113 237 lần, để  
chng minh cho bn thấy điều đó, tôi chra rng thc s26781 = 113 * 237.  
2.1.2 Hệ thống chứng minh tƣơng tác  
Theo lý thuyết tính toán phc tp, mt hthng chứng minh tƣơng tác là một  
máy trừu tƣợng mà các mô hình tính toán nhƣ là việc trao đổi tin nhn gia hai bên.  
Các bên, có Verifier và Prover (ngƣời xác minh và ngƣời chứng minh), tƣơng tác vi  
nhau bằng cách trao đổi thông điệp để xác định mt chui thuc vmt ngôn nghay  
không? Prover là toàn năng và sở hu không gii hn ngun lực tính toán, nhƣng  
không thể tin tƣởng đƣợc, trong khi ngƣời xác minh đã bị chn sc mnh tính toán.  
Thông điệp đƣợc gi giữa hai bên Verifier và Prover cho đến khi có mt câu trli  
cho vấn đề này và đã “thuyết phục” chính nó nếu nó đúng.  
Tt ccác hthng chứng minh tƣơng tác gồm có hai yêu cu :  
Đầy đủ : Nếu phát biểu là đúng, việc xác minh trung thc (có nghĩa là, một trong  
các giao thức sau đây là đúng) sẽ đƣợc thuyết phc thc tế bi Prover trung thc.  
Hoàn thin : Nếu phát biu là sai, không có Prover, ngay ckhi không theo giao  
thc, có ththuyết phục ngƣời xác minh trung thc rằng nó là đúng, trừ vi mt sxác  
sut rt nh.  
Chú ý rng chúng ta không quan tâm ti nhng gì xy ra nếu ngƣời xác minh  
không trung thực, chúng ta tin vào ngƣời xác minh.  
Bn cht cthca hthống, và do đó các lớp phc tp ca ngôn ngnó có thể  
nhn ra, phthuc vào nhng gì sp xếp gii hạn đƣợc đặt trên Verifier, cũng nhƣ  
nhng gì mà khả năng của nó mang li ví d, hu hết các hthng chng minh  
tƣơng tác phụ thuc vào rt nhiu vào khả năng của Verifier để đƣa ra lựa chn ngu  
16  
       
nhiên. Nó cũng phụ thuc vào bn cht ca tin nhắn trao đổi có bao nhiêu và nhng  
gì cha bên trong nó. Hthng chứng minh tƣơng tác đã tìm thấy mt số ý nghĩa sâu  
sắc đáng ngạc nhiên cho các lp truyn thng phc tạp đƣợc xác minh bng cách sử  
dng chmt máy. Các lp phc tp ca hthống chính đƣợc miêu tbng hthng  
chứng minh tƣơng tác là AM và IP. (Arthur Merlin protocol và Interactive Proof  
System)  
2.1.3 Phƣơng pháp chứng minh không tiết lộ thông tin  
1/ Khái niệm  
Mt hqutiêu biu ca mt phép chng minh là bạn đã học đƣợc mt shiu  
biết, khác hơn là bạn đang tin rằng phát biểu là đúng sự tht. Trong ví dụ trƣớc chcó  
bn biết 26781 không phi là snguyên tố, nhƣng bạn cũng chỉ ra phân tích nhân ca  
số đó.  
Chng minh không tiết lthông tin cgng tránh khỏi điều này. Trong phƣơng  
pháp này, Alice mun chng minh cho Bob thy rằng X đúng, Bob sẽ thc sbị  
thuyết phc rằng X là đúng, nhƣng sẽ không học đƣợc bt kỳ điều gì nhƣ là hệ quca  
quá trình này. Rng Bob không có thêm hiu biết.  
Ta li xét thêm mt ví dụ đơn giản nhƣ thế này :  
Gisử P và V cùng tham gia trò chơi với các quân bài. P đƣa ra 2 quân bài úp và  
nói đó là “át” và “2”. P yêu cầu V chọn quân “át”.  
Trƣớc khi chọn quân “át”, V muốn kim tra chc chn rằng 2 quân bài đó đích  
thực là “át” và “2”. V yêu cầu P chứng minh điều này. Nếu P lt 2 quần bài đó lên thì  
coi nhƣ là một cách chứng minh thì trò chơi kết thúc vì V đã nhìn thấy chúng và dĩ  
nhiên là anh ta có thchọn ngay ra đƣợc quân bài “át”.  
Có một cách khách để P chng minh rằng quân bài đó là “át” và “2” mà không  
phi lật 2 quân bài đó lên, tức là không làm lthông tin v2 quân bài trên tay P. Rt  
đơn giản, anh ta đƣa 50 quân bài còn lại cho V. Nếu V kim tra thy thiếu mt quân  
bài “át” và 1 quân bài “2” thì có thể coi quân bài trên tay P đƣa ra đúng nhƣ anh ta nói.  
Qua hai ví dtrên có thtm hiu Chng minh không tiết lthông tinkhông  
có nghĩa là “không để lthông tinmà nghĩa là “để lthông tin mc ít nhtvsự  
vt svic cn chng minh. Vi nhng thông tin để lộ”, ngƣời xác minh không có  
nhiu hiu biết (knowledge) vsvt svic, hchthu đƣợc chút ít thông tin (coi  
nhƣ “zero knowledge”) về đặc đim tính cht ca nó.  
17  
 
Giao thc là giao thc Hi - Đáp” 3 bƣớc để P chng minh cho V mt vn  
đề nào đó.  
- P gi cho V - mt giá trngu nhiên.  
- V gi li P - mt giá trngẫu nhiên nhƣ là giá trị dùng để kim th.  
- P gi đáp lại V mt giá tr.  
Kết quV tha nhn hoc bác bvấn đề P chng minh.  
Chng minh không tiết lthông tin” đƣợc phát minh bi Goldwasser, Micali và  
Rackoff năm 1981 (đƣợc viết tt là GMR). Chng minh không tiết lthông tin (và  
chng minh tƣơng tác nói chung) hóa ra là mt trong nhng lý thuyết hay nht và có  
nh hƣởng ln nht trong khoa hc máy tính, vi ng dng ngày càng tăng trong dán  
chký thc để chng minh rt nhiu vn đề NP-complete là khó ngay ckhi xp x.  
2/ Các thành phần bên trong phép chứng minh không tiết lộ thông tin  
Có hai nhân vt mà chúng ta thƣờng xuyên phi để nhc đến trong vn đề này :  
- Peggy, các Prover(ngƣời chng minh) Peggy có mt sthông tin mun chng  
minh cho Victor thy, nhƣng cô y li không mun nói thng bí mt đó cho  
Victor.  
- Victor, các Verifier(ngƣời xác minh) Victor hi Peggy mt lot các câu hi, cố  
gng tìm ra đƣợc là Peggy có thc sbiết đƣợc bí mt đó hay không. Victor  
không tiếp thu đƣợc bt cứ điu gì khác tbí mt đó, ngay ckhi anh ta gian ln  
hay không tuân theo chdn ca giao thc.  
3/ Tính chất của giao thức chứng minh không tiết lộ thông tin  
Giao thc chng minh không tiết lthông tin có thể đƣợc mô tnhƣ là các giao  
thc mt mã khác có tính năng đặc bit đƣợc mô ttrong [10] H. Aronsson. Zero  
knowledge protocols and small systems :  
- Ngƣời xác minh (verifier) không thtiếp thu đƣợc bt cmột điều gì tgiao thc  
này : Verifier không hc thêm đƣợc bt cứ điều gì tgiao thc này, bi anh ta  
không thtmình tìm hiểu mà không có ngƣời chng minh (prover). Đây chính  
là ni dung chính ca giao thc chng minh không tiết lthông tin (giống nhƣ  
không có tri thức nào đƣợc trao đổi ở đây). Không có thuc tính này, giao thc  
này sẽ đƣợc gi là giao thc tiết lti thiu, tc là nó yêu cu hoàn toàn không  
có thông tin nào có thể để lộ trong trƣờng hp này.  
18  
- Prover skhông gian ln Verifier : Nếu Peggy không biết bí mật đó, rõ ràng xác  
sut thành công ca cô y là rt nh. Sau svòng lặp tƣơng đối ln ca giao thc  
này, tlProver gian ln sẽ đƣợc làm nhnht khi cn thiết. Giao thức này cũng  
đƣợc ct và chn la, tc là chcn lần đầu tiên Prover tht bi, Victor có thbiết  
đƣợc ngay rng Peggy gian lận. Nhƣ vậy, vi mi vòng lp ca giao thc này,  
xác sut thành công sẽ cao hơn rất nhiu. Giao thc này có thlàm vic tt ngay  
ckhi xác sut may mn ca Prover gian ln cao vì ta có thể tăng số ln vòng lp  
ca giao thc. Nói cách khác, khả năng nm bt ca Verifier rt cao, có thbo  
vbn thân tránh khi bthuyết phc bi nhng vấn đề sai (không có vấn đề gì  
mà Prover có thể đánh lừa đƣợc Verifier).  
- Verifier không thgian lận Prover đƣợc : Victor không có thêm đƣợc bt cứ  
thông tin nào tgiao thc, thm chí nếu anh ta không tuân theo nhng chdn  
đó. Điều duy nht Victor có thể làm để thuyết phc chính anh ta rng Peggy biết  
bí mật đó. Điều mà Prover tiết lchlà mt gii pháp ca trong rt nhiu gii  
pháp cho mt vấn đề, không bao gitt cnhững điều y kết hp li có thtìm ra  
đƣợc bí mật đó.  
- Verifier không thgiả làm Prover để chứng minh cho ngƣời thba đƣợc. Bi vì  
không có thông tin rò rtPeggy cho Victor, Victor không ththử để thay thể  
Peggy cho bên th3 bt kbên ngoài. Vi mt sgiao thức khác, ngƣời trung  
gian có thtấn công là điều có thể, tuy nhiên, điều đó có nghĩa là có ai đó có thể  
chuyn tiếp lƣu lƣợng truy cp tPeggy tht và cgng thuyết phc mt Victor  
khác, thphm, là Peggy. Ngoài ra nếu các bn ghi Verifier khác ghi li cuc  
đàm thoại gia anh ta và Prover, thì bản ghi đó cũng không thể đƣợc dùng để  
thuyết phc bên thba nào c. Nó trông giống nhƣ một cuc trò chuyn gi(ví  
dụ: trong đó Verifier và Prover cùng đồng ý bắt tay trƣớc khi yêu cu Verifier  
chn)  
- Victor có thchng minh bt cmt luận điểm đúng nào : Thuộc tính này đƣợc  
gi là hoàn thin và nó là khả năng nắm bắt cơ bản ca mt số Prover để thuyết  
phc Verifier vluận điểm đúng đó (thuc vmt số định trƣớc ca mt tp hp  
các luận đim đúng)  
19  
Gis, Peggy có gng thuyết phc Victor là cố ấy biết mt bí mt có thchp  
nhận đƣợc ca mt công thức toán logic φ. Cô ấy có thể làm điều này bng cách gửi đi  
schuyển nhƣợng chân lý đáp ứng cho φ tới Victor. Thay vào đó, GMR [8] [6] chuẩn  
bmt kch bn xác sut mà Victor bthuyết phc bi Peggy thc scó mt chuyn  
nhƣợng cho φ bằng cách trao đổi tht nhiu tin nhn vi anh ta và khẳng định rng cô  
ta biết bí mt. Vì tính hp lệ và tính đây đủ ca phép chng minh không tiết lthông  
tin, nếu nhƣ có một chân lý tn ti, thì Peggy có thể làm nhƣ vậy mà Victor hầu nhƣ  
luôn luôn chp nhận, nhƣung nếu một chân lý nhƣ vậy không tn ti, thì không có vn  
đề gì mà Peggy làm, Victor chc chn stchi.  
Mt ý nim khác ca xác suất đã đề xut mt cách độc lp bi Babai [3] đƣợc gi  
là giao thc Arthur Merlin. Nó đã đƣợc hn chế so vi mô hình GMR bi trong mô  
hình này, Verifier đƣợc yêu cu phi tiết ltt ccác bit ngu nhiên ngay sau khi kết  
thúc giao thc.  
20  
2.2 PHÂN LOẠI ỨNG DỤNG XUẤT PHÁT TỪ THỰC TIỄN  
Chng minh không tiết lthông tin có rt nhiu ng dng. Các ng dng thc  
tin nhất đƣợc chia làm hai loi :  
2.2.1 Thiết kế giao thức  
Mt giao thc là mt thut toán cho các bên tƣơng tác để đạt đƣợc mt smc  
tiêu. Ví d, chúng ta thy giao thức trao đổi khóa Diffie-Hellman. Trong giao thc  
này, chúng ta giả định rng cả hai bên đều làm theo hƣớng dn ca giao thức, và điều  
duy nht ta lo lắng là ta đã trở thành một đối ththụ động.  
Tuy nhiên, trong mt mã hc, chúng ta mun thiết kế các giao thc rng cn phi  
đạt đƣợc bo mt thm chí khi một trong các bên “gian lận” và không theo hƣớng dn.  
Đây là một vấn đề khó khăn kể từ khi chúng ta không có cách để biết chính xác các  
bên sẽ “gian lận”.  
Tuy nhiên, một cách để tránh gian lận là nhƣ sau : Nếu Alice chy mt giao thc  
với Bob, để cho Bob biết rng Alice không gian ln, cô y sgi toàn bdliệu đầu  
vào cho Bob và sau đó Bob có thể chng thực điều này.  
Tuy nhiên, cách này sẽ không đƣợc chp nhn nht là vi Alice : lý do duy nht  
là họ đang cùng chạy giao thc này và hkhông ththc sự tin tƣởng đối phƣơng, và  
nhng dliệu đầu vào mà cô y có là bí mt, và cô y không mun chia schúng.  
Chng minh không tiết lthông tin cung cp mt gii pháp cho vấn đề này. Thay  
vì gi hết các dliệu đầu vào ca mình, Alice schng minh không tiết lthông tin  
rng cô ấy đã theo đúng hƣớng dn. Bob sbthuyết phục, nhƣng cũng sẽ không biết  
đƣợc bt cứ điều gì vnhng dliệu đầu vào ca Alice ngoài nhng cái anh ấy đã biết  
trƣớc kia.  
Thc tế, chúng ta sthy rng có thể làm điều này một cách chung, áp dung cơ  
bn cho tt ccác giao thc mã hóa. Vì thế, mt kthut tng hp (phát minh bi  
Goldreich, Micali và Wigderson , GMW) [10] là để thiết kế ra mt giao thc mt mã  
đầu tiên giả định tt cmọi ngƣời sphải làm theo hƣớng dẫn và sau đó “yêu cầu” sẽ  
bt hphi làm theo chdn sdng hthng chng minh không tiết lthông tin.  
2.2.2 Đề án nhận dạng  
Mt phần đơn giản hơn và ứng dng trc tiếp là đề án nhn dng. Gisrng  
chúng ta mun kim soát truy cp vào các bphn khoa hc máy tính. Một cách để  
21  
     
làm điều đó là cho ngƣời đƣợc y quyn (có thm quyn) mt sbí mt là mã PIN, và  
có mt ô trên cửa nơi gõ số PIN trên hộp đó. (Một cách thun tiện hơn, nhƣng về cơ  
bản cũng giống nhƣ cách ngƣời đƣợc y quyn có thmà truyn sPIN cho hp).  
Một nhƣợc điểm của phƣơng pháp này là hộp vn còn bên ngoài sut thi gian  
y, và nếu có ai đó có thể kim tra chiếc hp, có lhscó thxem bnhca nó và  
trích xut bí mt chìa khóa ca tt cmọi ngƣời. Nhƣ vậy, tmột quan điểm bo mt,  
nó là tốt hơn nếu hp không cha thông tin bí mt nào c, và thm chí là nếu có ai đã  
cài đặt mt hộp để gimo họ cũng skhông biết gì vnhng bí mt mã PIN.  
Chng minh không tiết lthông tin giúp ta theo các cách sau :  
Có hp cha mt thhin ca vấn đề khó khăn. Ví dụ, hp có thcha n hp số  
mà không cn phân tích nhân ca nó.  
Cung cp cho những ngƣời có thm quyn gii pháp cho vấn đề này. Ví d, hcó  
thnhn phân tích nhân của n để n = p.q  
Nhng ngƣời có thm quyn schng minh cho hbiết hp phân tích nhân  
không tiết lthông tin.  
Sau đây chúng tôi sẽ tp trung nghiên cu mt loi ng dụng là “thiết kế giao  
thức” bằng việc đi sâu vào phân tích hai ví dụ ni bt ca loi ng dng này.  
22  
2.3 ỨNG DỤNG TRONG THĂM DÕ TỪ XA  
Chúng ta đã biết mt skthut thăm dò ý kiến txa (các kthut này có trong  
bphiếu điện t- Electronic Voting). Ctri gibí mt lá phiếu khi truyn txa ti  
ban kim phiếu bng cách mã hoá ni dung lá phiếu. Theo kthuật “mã hoá đồng  
cấu”, ban kiểm phiếu có thể tính đƣợc kết quả thăm dò từ xa mà không cn phi gii  
mã ni dung lá phiếu. Vấn đề ny sinh là ctri phi chứng minh đƣợc vi ban kim  
phiếu rng lá phiếu ca mình là hp lnhƣng ni dung lá phiếu thì không đƣợc  
tiết lvi họ. Để thc hiện điều này, hiện nay ngƣời ta dùng kthuật “Chứng minh  
không tiết lộ thông tin” (Zero-knowledge proof). Chúng tôi trình bày ý tƣởng trên để  
thc hin bphiếu loại “Chọn 1 trong k”.  
Ở đây chúng ta coi “ngƣời đƣợc thăm dò” cử tri để dễ xác định hot động.  
2.3.1 Các khái niệm  
1/ Vấn đề bỏ phiếu thăm dò từ xa (Electronic Voting) :  
Nghiên cu v''Bphiếu thăm dò txa'' là mt chủ đề quan trọng đóng góp cho  
stiến bca xã hi dân ch. Nếu mt hthng bphiếu thăm dò an toàn và tin cy,  
nó sẽ đƣợc sdụng thƣờng xuyên để thu thp ý kiến ca mọi ngƣời cho nhiu quyết  
định vchính trvà xã hi thông qua hthng tự động hóa. “Bỏ phiếu thăm dò từ xa'”  
cũng phải đạt đƣợc các tính chất nhƣ “bỏ phiếu truyn thống” [1]. Mt qui trình bỏ  
phiếu gm mt số giai đoạn (công đoạn). Hin nay có nhiu kthut mật mã để thc  
hin hp lý trong từng giai đoạn.  
Trong luận văn này tôi xin trao đổi về giai đoạn Ctri (CT) chuyn lá phiếu  
thăm dò ti Ban kim phiếu (Ban KP) cho sơ đồ bphiếu loại “Chn 1 trong k”.  
Trong giai đoạn này ngƣời ta sdng kthuật “Mã hóa đồng cu - Chia sbí mật”  
(Homomorphic Encryption Secret Sharing) [1], kthuật “Chứng minh không tiết lộ  
thông tin” (Zero-knowledge proof).  
2/ Giai đoạn cử tri chuyển là phiếu đến ban kiểm phiếu :  
Theo suy nghĩ thông thƣờng, khi Ctri (CT) chuyn lá phiếu ti Ban kim phiếu  
(Ban KP) thì hchcn mã hóa ni dung lá phiếu là đủ. Vì tiếp theo Ban KP chcn  
gii mã ni dung lá phiếu là tính đƣợc kết qu(kim phiếu).  
23  
   

Tải về để xem bản đầy đủ

pdf 55 trang yennguyen 25/04/2025 50
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Phương pháp chứng minh không tiết lộ thông tin và ứng dụng trong giao dịch trên mạng máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_phuong_phap_chung_minh_khong_tiet_lo_thong_tin_va.pdf