Tải bản đầy đủ (.docx) (229 trang)

Một số loại chữ ký điện tử và ứng dụng

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.57 MB, 229 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI

LUẬN VĂN THẠC SỸ

NGUYỄN TRỊNH ĐOÀN

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

Hà Nội ngày 01 tháng 12 năm 2007


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Viết tắt

Thuật ngữ tiến

BDS

Blind Digital Si

CA

Certificate Auth

CTF

Central Tabulat

DEA


Data Encryptio

DES

Data Encryptio

DSS

Digital Signatu

GDS

Group Digital S

GBDS

Group Blind Di

IDEA

International D
Algorithm

LRF

Local Registrat

MAC

Message Authe


MD5

Message Diges

PKI

Public Key Infr

SHA-1

Secure Hash Al

SK

Signature of Kn

VSF

Vote Submissio

1


DANH MỤC CÁC HÌNH VẼ VÀ KÝ HIỆU
CÁC HÌNH VẼ
Hình 1: Minh họa mã hóa và giải mã .............................................................
Hình 2: Minh họa sinh và thẩm tra chữ ký .....................................................
Hình 3: Minh họa hàm băm và đại diện thông điệp .......................................
Hình 4: Minh họa chữ ký số sử dụng hàm băm .............................................

Hình 5: Mô hình ngân hàng điện tử phân tán ...............................................
CÁC KÝ HIỆU
a R A
Zn
Zn*
Định nghĩa 3.5.2
[2, 3, 5, 7, 33]

2


MỞ ĐẦU
1. Lý do chọn đề tài
Trong cuộc sống và trong các hoạt động của con ngƣời, việc trao đổi
thông tin là một nhu cầu thiết yếu, con ngƣời trao đổi thông tin để tồn tại và
phát triển trong quy luật vận động của tự nhiên và xã hội. Thông tin thì đa
dạng, phong phú đƣợc thể hiện dƣới nhiều dạng thức khác nhau nhƣ văn bản,
hình ảnh, âm thanh, số liệu,…Mặt khác việc trao đổi thông tin cũng diễn ra
dƣới nhiều hình thức và bằng các phƣơng pháp khác nhau.
Cùng với sự phát triển của công nghệ thông tin, các phƣơng tiện và
công nghệ truyền thông tiên tiến ra đời, trong đó mạng máy tính và đặc biệt là
mạng Intenet đã giúp con ngƣời trao đổi thông tin hết sức thuận tiện, nhanh
chóng. Một vấn đề vô cùng quan trọng đƣợc đặt ra là sự bảo mật và an toàn
trong việc trao đổi thông tin. Các thông tin truyền đi phải đảm bảo tính chính
xác, không bị sửa đổi và trong rất nhiều trƣờng hợp cần đƣợc bảo đảm tính bí
mật thông tin và cần xác thực đúng ngƣời gửi và ngƣời nhận. Xuất phát từ
thực tế này có nhiều biện pháp về an toàn thông tin ra đời.
Một giải pháp hữu hiệu cho cho việc đảm bảo tính bí mật của thông tin
là mã hóa thông tin. Mã hóa thông tin là sự biến đổi thông tin thành một dạng
khác với mục đích “che giấu” nội dung thông tin, chỉ những đối tƣợng có

thẩm quyền mới có thể giải mã thông tin đã mã hóa (hủy bỏ sự “che giấu”) để
lấy lại thông tin ban đầu.
Để xác thực thông tin, gắn trách nhiệm của một thực thể nào đó với một
thông tin, cũng nhƣ đảm bảo tính toàn vẹn, thông tin truyền đi không bị sửa
đổi ngoài ý muốn, con ngƣời đã sáng tạo ra chữ ký số.
Vấn đề xƣng danh và xác nhận danh tính của các thực thể cũng là các
vấn đề rất cần thiết trong giao dịch điện tử.

3


Các yêu cầu về an toàn và bảo mật truyền thông gồm:
1) Đảm bảo tin cậy: Thông tin đƣợc bí mật, không sao chép trái
phép.
2)

Tính toàn vẹn: Nội dung thông tin không bị thay đổi.

3)

Tính xác thực: Thông tin đƣợc gửi và nhận hợp pháp, đúng

các chủ thể giao dịch, không mạo danh.
4)

Không thể chối bỏ trách nhiệm: Ngƣời gửi tin không thể chối

bỏ trách nhiệm về những thông tin đã gửi.
Bằng các công nghệ mã hóa và chữ ký số chúng ta có thể thực hiện
đƣợc các yêu cầu trên, sử dụng chữ ký số đảm bảo tốt ba yêu cầu sau cùng.

Hiện nay ngƣời ta đã sử dụng chữ ký số trong các công việc: giao dịch
các tài liệu điện tử, trao đổi thƣ tín, tiền điện tử, giao dịch ngân hàng,…, và
ứng dụng trong nhiều lĩnh vực khác nhau nhƣ: quản lý hành chính, giáo dục,
kinh tế, thƣơng mại điện tử… Ở Việt Nam, luật giao dịch điện tử đã đƣợc
Quốc hội khóa XI thông qua vào tháng 11 năm 2005 tại kỳ họp thứ 8 và có
hiệu lực từ 01/03/2006, do đó đã tạo hành lang pháp lý thuận lợi cho giao dịch
điện tử. Trong tƣơng lai không xa việc ứng dụng chữ ký điện tử sẽ trở thành
phổ biến và đóng một vai trò quan trọng thúc đẩy sự phát triển kinh tế xã hội
của đất nƣớc.
Xuất phát từ thực tế nêu trên, việc nghiên cứu các phƣơng pháp an toàn
thông tin nói chung, chữ ký số nói riêng là thiết thực và có ý nghĩa to lớn.
Luận văn “MỘT SỐ LOẠI CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG”
đƣợc nghiên cứu dựa trên các vấn đề thực tiễn cuộc sống đòi hỏi nhƣ việc
trao đổi thông tin hàng ngày giữa các tổ chức, cá nhân mà yêu cầu bảo mật và
an toàn thông tin đƣợc đề ra.


4


2. Nội dung nghiên cứu của luận văn
Luận văn tập trung nghiên cứu một số vấn đề chính sau đây:
1)

Một số kiến thức toán học sử dụng trong khoa học mật mã

2)

Tổng quan về mã hóa và chữ ký số (chữ ký điện tử).


3)

Sơ đồ chữ ký RSA.

4) Các sơ đồ chữ ký số mù, chữ ký số nhóm, chữ ký số mù
nhóm.
5)

Ứng dụng của các sơ đồ chữ ký nói trên.

Sơ đồ chữ ký RSA là một sơ đồ chữ ký thông dụng hiện nay vì sự cài
đặt đơn giản và tính an toàn cao, làm cơ sở xây dựng nhiều loại chữ ký khác.
Các sơ đồ chữ ký số mù, chữ ký số nhóm và chữ ký số mù nhóm là các
sơ đồ chữ ký đặc biệt có nhiều ứng dụng trong các lĩnh vực: Tiền điện tử, giao
dịch ngân hàng, thƣơng mại điện tử, bỏ phiếu trực tuyến,…Các loại chữ ký
này đƣợc thiết kế để giải quyết các vấn đề: ẩn danh, làm việc theo nhóm và ký
đại diện cho nhóm trong giao dịch điện tử.

3. Phƣơng pháp nghiên cứu
Luận văn đƣợc nghiên cứu dựa trên:
1)

Học hỏi, xin ý kiến của thầy hướng dẫn và các đồng nghiệp.

2)

Nghiên cứu các tài liệu chuyên môn liên quan bằng tiếng

Việt, tiếng Anh, tìm kiếm thông tin trên Internet.
3)


Tìm hiểu và quan sát thực tiễn.

4)

Thử nghiệm một số chương trình đơn giản.


5


4. Tổ chức luận văn
Luận văn gồm 6 chƣơng nhƣ sau:
Chương 1: Các kiến thức cơ sở.
Chương 2: Tổng quan về mã hóa và chữ ký số.
Chương 3: Chữ ký mù.
Chương 4: Chữ ký nhóm.
Chương 5: Chữ ký mù nhóm.
Chương 6: Thử nghiệm chương trình.
Vì thời gian có hạn, trong khi đề tài lại rất sâu rộng, mặt khác kiến thức
và kinh nghiệm của bản thân về lĩnh vực này còn hạn chế, bản luận văn không
thể tránh khỏi các khiếm khuyết. Rất mong nhận đƣợc sự góp ý và bổ xung
của các thầy cô, bạn bè đồng nghiệp. Hy vọng rằng đề tài này sẽ đƣợc tiếp tục
nghiên cứu và phát triển để hoàn thiện hơn.

6


Chương 1. CÁC KIẾN THỨC CƠ SỞ
Lý thuyết mật mã là một ngành khoa học đƣợc xây dựng dựa trên cơ sở

toán học, đặc biệt là lý thuyết số học. Chƣơng này tổng hợp một số kiến thức
toán học liên quan đƣợc sử dụng trong lý thuyết mật mã cũng nhƣ trong lĩnh
vực chữ ký số [2, 3, 5, 7, 33].
1.1. LÝ THUYẾT SỐ HỌC
1.1.1. Phép chia hết và chia có dƣ
1.1.1.1. Định nghĩa 1.1.1
1)

Cho hai số nguyên a và b (b ≠ 0). Nếu có một số nguyên q sao cho a =

b.q thì ta nói rằng a chia hết cho b, kí hiệu b\a. Khi đó ta nói b là ƣớc của a
hay a là bội của b.
Ví dụ: a = 8, b = 2; ta có 8 = 2.4 do đó 2 là ƣớc của 8 và ký hiệu 2\8.
2)

Cho các số nguyên a, b (b ≠ 0), tồn tại cặp số nguyên (q, r) duy nhất sao

cho a = b.q + r, 0  r < b , khi đó q gọi là thƣơng nguyên, r gọi là số dƣ của

phép chia a cho b. Nếu r = 0 thì ta có phép chia hết.
Ví dụ: a = 13, b = 5; 13 = 5.2 + 3 → q = 2, r = 3.
1.1.1.2. Một số tính chất
Với a, b, c là các số nguyên ta có:
1)

±1\a, với mọi a; a\0, a\a, với mọi a ≠ 0.

2)

Nếu a\b và b\c thì a\c, với mọi a ≠ 0, b ≠ 0.


3)

Nếu a\b thì a\b.c, với mọi a ≠ 0.

4)

Nếu a\b và a\c thì a\(b+c) và a\(b-c), với mọi a ≠ 0.

5)

Nếu a\b và c\d thì a.c\b.d, với mọi a ≠ 0, c ≠ 0.


7


1.1.2. Ƣớc chung lớn nhất, bội chung nhỏ nhất
1.1.2.1. Định nghĩa 1.1.2
1)

Một số nguyên d đƣợc gọi là ƣớc chung của các số nguyên a1, a2, …,

an nếu nó là ƣớc của tất cả các số đó.
2)

Một số nguyên m đƣợc gọi là bội chung của các số nguyên a1, a2, …,

an nếu nó là bội của tất cả các số đó.
3)


Một ƣớc chung d>0 của các số nguyên a 1, a2, …, an sao cho mọi ƣớc

chung của a1, a2, …, an đều là ƣớc của d, thì d đƣợc goi là ƣớc chung lớn
nhất của a1, a2, …, an và ký hiệu là d = gcd(a1, a2, …, an). Để cho gọn trong
trình bày ta có thể ký hiệu là d = (a1, a2, …, an).
4)

Nếu gcd(a1, a2, …, an) = 1 thì các số a1, a2, …, an đƣợc gọi là nguyên

tố cùng nhau.
5)

Một bội chung m>0 của các số nguyên a1, a2, …, an sao cho mọi bội

chung của a1, a2, …, an đều là bội của m, thì m đƣợc goi là bội chung nhỏ
nhất của a1, a2, …, an và ký hiệu là m = lcm(a1, a2, …, an).
Ví dụ: gcd(12,18) = 6; lcm(12,18) = 36;
gcd(8,9) = 1 do đó 8 và 9 là hai số nguyên tố cùng nhau.
1.1.2.2. Tính chất
1)

d = gcd(a1, a2, …, an) khi và chỉ khi tồn tại các số x1, x2,…, xn

sao cho: d = a1x1+a2x2+…+an .
2)

m = lcm(a1, a2, …, an) khi và chỉ khi (m/a1, m/a2,…, m/an) =1.

3)


Nếu d là một ƣớc chung của a1, a2, …, an thì:

d = gcd(a1, a2, …, an) khi và chỉ khi gcd(a1/d, a2/d,…, an/d) =1.
4)

Nếu gcd(a,b) = 1 và b\ac thì b\c.


8


5)

Nếu gcd(a,b) = 1 thì gcd(ac,b) = gcd(c,b).

6)

Nếu gcd(a, b) =1 thì lcm(a, b) = ab.

7)

Nếu b > 0, a = bq+r thì gcd(a,b) = gcd(b,r).

8)

gcd(ma1, ma2, …, man) = m.gcd(a1, a2, …, an) (với m≠0).

9)


lcm(a, b) = ab/gcd(a, b).

1.1.2.3. Thuật toán Euclide tìm ước chung lớn nhất
1)

Bài toán



Dữ liệu vào: Cho hai số nguyên không âm a, b, a ≥ b.



Kết quả: gcd(a,b).

2)

Thuật toán (mô phỏng bằng ngôn ngữ

Pascal) Readln(a, b);
While b > 0 do
Begin
r := a mod b; a := b; b := r;
End;
Writeln(a);
3)

Ví dụ

Cho: a = 30, b = 18;

Ta có: gcd(30,18) = gcd(18,12) = gcd(12,6) = gcd(6,0) = 6.


9


1.1.2.4. Thuật toán Euclide mở rộng
1)

Bài toán



Dữ liệu vào: Cho hai số nguyên không âm a, b, a ≥ b.



Kết quả: d = gcd(a,b) và hai số x, y sao cho: ax + by = d.

2)

Thuật toán: (mô phỏng bằng ngôn ngữ

Pascal) Readln(a, b);
If b = 0 then
Begin
d := a; x := 1; y :=
0; writeln(d, x, y);
End
Else

Begin
x2 := 1; x1 := 0; y2 := 0; y1 :=
1; While b>0 do
Begin
q := a div b; r := a mod b; x := x2-q*x1; y := y2-q*y1;
a := b; b := r; x2 := x1; x1 := x; y2 := y1; y1 := y;
End;
d := a; x := x2; y :=
y2; writeln(d, x, y);
End;

10


1.1.3. Số nguyên tố
1.1.3.1. Định nghĩa 1.1.3
Số nguyên tố là số tự nhiên lớn hơn 1, chỉ có hai ƣớc là 1 và chính nó.
Ví dụ: Các số 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 là số nguyên tố.
Số nguyên tố có vai trò và ý nghĩa to lớn trong số học và lý thuyết mật mã.
Bài toán kiểm tra tính nguyên tố của một số nguyên dƣơng N và phân tích
một số N ra thừa số nguyên tố là các bài toán rất đƣợc quan tâm và có nhiều
công trình nghiên cứu và đã đạt đƣợc các kết quả to lớn. Hiện nay bài toán
kiểm tra tính nguyên tố đƣợc xếp vào lớp bài toán P.
Có một số phƣơng pháp kiểm tra tính nguyên tố của một số nguyên
bằng xác xuất nhƣ: Solovay-Strassen, Lehmann-Peralta, Miller-Rabin [5].
Ví dụ: 10 số nguyên tố đƣợc tìm thấy [33].
Thứ

Số nguyên tố


hạng
1

232582657-1

2

230402457-1

3

225964951-1

4

224036583-1

5

220996011-1

6

213466917-1

7

19249·2

13018586


8

27653·2

9167433

+1

+1


7830457

9

28433·2

10

33661·2

11

+1

7031232

+1



1.1.3.2. Một số định lý
1)

Định lý 1.1.1 (Định lý cơ bản)

Mọi số nguyên dƣơng n > 1 đều có thể biểu diễn duy nhất đƣợc dƣới
dạng n  P n1 .P n2 ...Pnk với k, n là các số tự nhiên, P là các số nguyên tố đôi
1

2

k

i

i

một khác nhau (i = 1, 2,.., k).
2)

Định lý 1.1.2 (Định lý Mersenne)
Cho p = 2k -1, nếu p là số nguyên tố thì k là số nguyên tố.

Chứng minh
Giả sử k không là số nguyên tố. Khi đó k = a.b với 1 < a, b < k, do đó p
= 2k -1 = 2ab -1 = (2a)b -1 = (2a -1).E (E là một biểu thức nguyên) mâu thuẫn
giả thiết p là nguyên tố. Vậy giả sử là sai, hay k là số nguyên tố.
3)



Định lý 1.1.3 (Hàm Euler)
Hàm Euler
Cho số nguyên dƣơng n, số lƣợng các số nguyên dƣơng bé hơn n và

nguyên tố cùng nhau với n đƣợc ký hiệu  (n) và gọi là hàm Euler.


Nhận xét
Nếu p là số nguyên tố thì  (p) = p-1.

▪ Định lý
Nếu n là tích của hai số nguyên tố n = p.q thì:



(n) =  (p). (p) = (p-1).(q-1).


12


1.1.4. Đồng dƣ thức
1.1.4.1. Định nghĩa 1.1.4
Cho các số nguyên a, b, m (m>0). Ta nói rằng a và b đồng dư với nhau
theo modulo m nếu trong phép chia a và b cho m ta được cùng một số dư,
ký hiệu: a ≡ b (mod m) [33].
Ví dụ: 19 ≡ 7 (mod 3) vì 19 và 7 chia cho 3 có cùng số dƣ là 1.
Các mệnh đề sau đây là tương đương:
1)


a ≡ b (mod m).

2)

m \ a-b.

3)

Tồn tại một số nguyên t sao cho a = b + mt.

Chứng minh
1)→2) : Theo định nghĩa a, b chia cho m có cùng số dƣ do đó :
a = mqa + r; b = mqb + r; suy ra a - b = m(qa - qb) chứng tỏ m \ ab; 2)→3) : m\a-b nên có t  Z sao cho a - b = mt hay a = b + mt
3)→1) : Lấy a chia cho m giả sử thƣơng là q a và dƣ r: a = mqa + r (0 ≤ r do đó: b + mt = a = mqa + r hay b = m(qa - t) + r (0 ≤ r < m). Điều đó chứng tỏ
khi chia a và b cho m đƣợc cùng số dƣ r hay a ≡ b(mod m)
1.1.4.2. Các tính chất
1)
Z:

Quan hệ đồng dƣ theo modulo m là một quan hệ tƣơng đƣơng trong
(1)

a ≡ a (mod m) với mọi a  Z ( phản xạ) .

(2)

Nếu a ≡ b (mod m) thì b ≡ a (mod m) (đối xứng).


(3)
Nếu a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m) (bắc
cầu).


13


2)

Có thể cộng hoặc trừ từng vế nhiều đồng dƣ thức theo cùng một

modulo m với nhau, ta đƣợc một đồng dƣ thức theo cùng modulo m tức là:
k

k

i 1

i1

Nếu ai ≡ bi (mod m) , i = 1..k thì:  ti ai  ti bi (mod m) với ti = ±1.
3)

Có thể nhân từng vế các đồng dƣ thức theo cùng một modulo m với

nhau, ta đƣợc một đồng dƣ thức theo cùng modulo m:
k

Nếu ai ≡ bi (mod m), i=1..k thì ta có:  ai


k



i 1

bi (mod m) .

i1

Hệ quả
a)

a ≡ b (mod m) → a ± c ≡ b ± c (mod m).

b)

a + c ≡ b (mod m) → a ≡ b - c (mod m).

c)

a ≡ b (mod m) → a+km ≡ b (mod m) với mọi k  Z.

d)

a ≡ b (mod m) → ac ≡ bc (mod m) với mọi c  Z.

e)


a ≡ b (mod m) → an ≡ bn (mod m) với mọi n  Z+.

f)

c\a, c\b, (c,m)=1, a ≡ b (mod m) → a/c ≡ b/c (mod m).

g)

a ≡ b (mod m), c > 0 → ac ≡ bc (mod

mc) và c\a, c\ b, c\m → a/c ≡ b/c (mod m/c).
h)

a ≡ b (mod m) → a ≡ b (mod k) với k\m.

i)

a ≡ b (mod m) → gcd(a,m) = gcd(b,m).


14


1.1.4.3. Các lớp thặng dư
Quan hệ đồng dƣ theo modulo m trên tập Z là một quan hệ tƣơng đƣơng
vì có tính chất phản xạ, đối xứng, bắc cầu do đó nó tạo ra một phân hoạch trên
tập các số nguyên Z thành ra các lớp tƣơng đƣơng: hai số nguyên thuộc cùng
một lớp tƣơng đƣơng khi và chỉ khi chúng có cùng một số dƣ khi chia cho m.
Mỗi lớp tƣơng đƣợc đại diện bởi một số duy nhất trong tập hợp Z m = {0,
1, 2,…, m-1} là số dƣ khi chia các số trong lớp cho m, ký hiệu một lớp đƣợc đại

diện bởi số a là [a]m hay với m mặc định nào đó ta viết tắt là [a], vậy:

[a]m = [b]m ↔ a ≡ b (mod m).
Vì vậy ta có thể đồng nhất Zm với tập các lớp tƣơng đƣơng theo
modulo m. Tập Zm = {0, 1, 2,…, m-1} đƣợc gọi là tập các thặng dƣ đầy đủ
theo modulo m. Mọi số nguyên bất kỳ đều có thể tìm đƣợc trong Z m một số
đồng dƣ với mình theo modulo m [3, 33].
1.1.4.4. Các định lý
1)

Định lý 1.1.4 (Định lý Ferma)
Nếu p là số nguyên tố, a là số nguyên thì ap ≡ a (mod p). Nếu p không

chia hết a thì ap-1 ≡ 1 (mod p).
Ví dụ: 47 ≡ 4 (mod 7); 47-1 ≡ 1 (mod 7).
2)

Định lý 1.1.5 (Định lý Euler)

Nếu gcd(a, m) = 1 thì a
tố ta có định lý Ferma.

 (m)

≡ 1 (mod m). Trƣờng họp m là số nguyên

Ví dụ
Cho m = 10,  (m) =  (2). (5) = 1.4 = 4 do đó:
74 ≡ 1 (mod 10), 94 ≡ 1 (mod 10), 214 ≡ 1 (mod 10).



×