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

(Luận văn thạc sĩ) 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 (2.18 MB, 152 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ếng Anh

Nghĩa tiếng Việt

BDS

Blind Digital Signature

Chữ ký số mù

CA

Certificate Authority

Nhà cung cấp chứng chỉ số

CTF


Central Tabulating Facility

Phƣơng tiện lập bảng trung tâm

DEA

Data Encryption Algorithm

Thuật toán mật mã dữ liệu

DES

Data Encryption Standard

Chuẩn mã hóa dữ liệu

DSS

Digital Signature Standard

Chuẩn chữ ký số

GDS

Group Digital Signature

Chữ ký số nhóm

GBDS


Group Blind Digital Signature

Chữ ký số mù nhóm

IDEA

International Data Encryption Thuật tốn mật mã dữ liệu
Algorithm

Quốc tế

LRF

Local Registration Facility

Phƣơng tiện đăng ký địa phƣơng

MAC

Message Authentication Code

Mã xác thực thơng điệp

MD5

Message Digest algorithm 5

Thuật tốn hàm băm MD5

PKI


Public Key Infrastructure

Cơ sở hạ tầng khố cơng khai

SHA-1

Secure Hash Algorithm

Thuật toán hàm băm SHA-1

SK

Signature of Knowledge

Chữ ký dựa trên tri thức

VSF

Vote Submission Facility.

Phƣơng tiện đệ trình phiếu

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ã ............................................................. 33
Hình 2: Minh họa sinh và thẩm tra chữ ký ..................................................... 48

Hình 3: Minh họa hàm băm và đại diện thơng điệp ....................................... 57
Hình 4: Minh họa chữ ký số sử dụng hàm băm ............................................. 59
Hình 5: Mơ hình ngân hàng điện tử phân tán ............................................... 125
CÁC KÝ HIỆU
a R A

Phần tử a đƣợc chọn ngẫu nhiên trong tập A.

Zn

Tập các số nguyên {0, 1,…, n-1}

Zn*

Tập các số nguyên trong Zn mà nguyên tố với n

Định nghĩa 3.5.2

Định nghĩa thứ 2 trong mục 3.5.

[2, 3, 5, 7, 33]

Tài liệu tham khảo [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 tồ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 tồ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 tồn vẹn, thơng tin truyền đi khơng bị sửa
đổi ngồ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 tồ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 tồ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
tồ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 tồ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 a 1, 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 a1, 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 tố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 tố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.
a

b

r

a = b.q + r


30

18

12

30 = 18.1 + 12

18

12

6

18 = 12.1 + 6

12

6

0

12 = 6.2 + 0

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 tố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ố ngun tố.
Số ngun tố có vai trị và ý nghĩa to lớn trong số học và lý thuyết mật mã.
Bài tốn kiểm tra tính ngun 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 tốn kiểm tra
tính ngun tố đƣợc xếp vào lớp bài tốn P.
Có một số phƣơng pháp kiểm tra tính ngun 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ố ngun tố đƣợc tìm thấy [33].
Thứ

Số nguyên tố

Số chữ số

hạng

Tác

Thời

giả

gian

Tham khảo

1

232582657-1

9808358

G9


2006

Mersenne 44

2

230402457-1

9152052

G9

2005

Mersenne 43

3

225964951-1

7816230

G8

2005

Mersenne 42

4


224036583-1

7235733

G7

2004

Mersenne 41

5

220996011-1

6320430

G6

2003

Mersenne 40

6

213466917-1

4053946

G5


2001

Mersenne 39

7

19249·213018586+1

3918990

SB10 2007

8

27653·29167433+1

2759677

SB8

2005

9

28433·27830457+1

2357207

SB7


2004

10

33661·27031232+1

2116617

SB11 2007

11


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  P1n1 .P2n2 ...Pknk với k, ni là các số tự nhiên, Pi là các số nguyên tố đô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ố ngun 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 \ a-b;
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à qa 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) Quan hệ đồng dƣ theo modulo m là một quan hệ tƣơng đƣơng trong Z:
(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à:
Nếu ai ≡ bi (mod m) , i = 1..k thì:

k

k

i 1

i 1

 ti ai   tibi (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:
Nếu ai ≡ bi (mod m), i=1..k thì ta có:

k

k

i 1

i 1


 ai   bi (mod m) .

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 Zm =
{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 Zm 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  (m) ≡ 1 (mod m). Trƣờng họp m là số nguyên
tố ta có định lý Ferma.
Ví dụ
Cho m = 10,  (m) =  (2).  (5) = 1.4 = 4 do đó:
74 ≡ 1 (mod 10), 94 ≡ 1 (mod 10), 214 ≡ 1 (mod 10).

15


Hệ quả 1: Nếu gcd(c, m) = 1 và a ≡ b (mod  (m)) với a, b là các số tự nhiên
thì ca ≡ cb (mod m) và suy ra: ca mod m = ca mod  (m) mod m.
Nhận xét: Hệ quả trên giúp ta giảm nhẹ việc tính tốn đồng dƣ của lũy thừa
bậc cao một cách đáng kể. Ví dụ muốn tính 21004 (mod 15):
Ta thấy  (15) =  (5).  (3) = 4.2 = 8 và 1004 ≡ 4 (mod 8), do đó:
21004 (mod 15) = 24 (mod 15) = 16 (mod 15) = 1.
Hệ quả 2: Nếu e, d là các các số nguyên thỏa mãn e.d ≡ 1 (mod  (m)) thì với
mọi số c nguyên tố cùng nhau với m ta có (ce)d ≡ c (mod m).
Nhận xét: Với a = ed và b = 1, từ hệ quả 1 ta có hệ quả 2. Hệ quả này đóng
vai trị then chốt trong việc thiết lập các hệ mã mũ sau này (nhƣ RSA).
1.1.4.5. Tính tốn đồng dư của các lũy thừa bậc lớn
Hệ quả 1 áp dụng hiệu quả trong trƣờng hợp a lớn hơn hẳn  (m) vì chỉ
khi ấy b mới thực sự nhỏ hơn a. Trong thực tế tính tốn ta thƣờng gặp m lớn
do đó  (m) lớn thậm chí lớn hơn a khi ấy ta dùng kỹ thuật khác, sau đây trình

cách bình phƣơng liên tiếp [3]:
Ví dụ: Tính 8743 (mod 103).
Trƣớc hết ta khai triển số mũ dƣới dạng cơ số 2:
43 = 32+8+2+1 = 25 +23 + 21 + 20 (*)
Sau đó tính liên tiếp các đồng dƣ bình phƣơng nhƣ sau:
87 (mod 103) = 87
872 (mod 103) = 50
874 (mod 103) = 502 (mod 103) = 28
878 (mod 103) = 282 (mod 103) = 63
8716 (mod 103) = 632 (mod 103) = 55
8732 (mod 103) = 552 (mod 103) = 38

16


Tổng hợp lại, căn cứ theo khai triển (*) ta lấy tích của các lũy thừa bậc 25, 23,
21, 20 (rút gọn theo modulo 130) sẽ thu đƣợc kết quả là:
8743 (mod 103) = 38.63.50.87 (mod 103) = 85.
Định lý 1.1.6 (Định lý Trung Quốc về số dư)
Cho tập số nguyên tố cùng nhau từng đôi một m1, m2,…mr. Với mỗi bộ
số nguyên bất kỳ a1, a2,…ar hệ phƣơng trình đồng dƣ:
x ≡ ai (mod mi) i = 1, 2, …, r ln có nghiệm và duy nhất theo modulo
m=

m1.m2.…mr . Nghiệm này có thể tính theo cơng thức:

x =

a1m2m3…mrb1 + m1a2m3…mrb2 + m1m2a3m3…mrb3 + … +
m1m2…mr-1arbr (mod m1.m2.…mr)


trong đó bi = ( m1.m2…mi-1mi+1…mr)-1 (mod mi), với mọi i = 1, 2,…, r.
Nhận xét
Định lý số dƣ Trung Quốc cho phép ta tính tốn đồng dƣ theo modulo
của một số lớn (tích của nhiều số ngun tố cùng nhau) thơng qua tính tốn
đồng dƣ theo modulo các số nhỏ (từng thừa số).
Ví dụ: Tìm nghiệm của hệ phƣơng trình

 x  3118(mod 5353)

 x  139(mod 391)
 x  239(mod 247)

Vì các số 5353, 391, 247 nguyên tố cùng nhau nên theo định lý Trung Quốc
về số dƣ hệ có nghiệm duy nhất theo modulo m = 5353.391.247 = 516976681.
Để tìm x mod m ta tính:
m1 = m/5353 = 96577 → y1 = 96577-1 mod 5353 = 5329
m2 = m/391 = 1322191→ y2 = 1322191-1 mod 391= 16
m3 = m/247 = 2093023 → y3 = 2093023-1 mod 247 = 238
x = 31188.96577.5329 + 139.1322191.16 + 239.2093023.238 (mod m)
= 13824 (mod m).

17


1.1.5. Cấu trúc nhóm
1.1.5.1. Phép tốn hai ngơi
1) Phép tốn hai ngôi trong một tập hợp A là một ánh xạ f từ AxA vào A.
Trong lý thuyết số thƣờng ký hiệu phép tốn hai ngơi là (+), (.), (*) nhƣng
không nhất thiết đƣợc hiểu theo các phép cộng, nhân thơng thƣờng. Phép

(.) đơi khi khơng cần viết.
2) Phép tốn hai ngôi (.) trong tập A đƣợc gọi là kết hợp nếu: a.(b.c) = (a.b).c,
ta ký hiệu: an = a.a….a.a (n phần tử a).
3) Phần tử đơn vị
- Phần tử e đƣợc gọi là phần tử đơn vị trái của phép tốn hai ngơi (.) nếu
e.a = a với mọi a  A.
- Phần tử e đƣợc gọi là phần tử đơn vị phải của phép tốn hai ngơi (.) nếu
a.e = a với mọi a  A.
- Phần tử e đƣợc gọi là phần tử đơn vị (trung lập) của phép tốn hai ngơi (.)
nếu vùa là đơn vị trái vừa là đơn vị phải.
- Phần tử a’ gọi là phần tử đối (hay nghịch đảo) của a nếu: a’.a = a.a’ = e,
trong đó e là phần tử đơn vị, ký hiệu a’ là a -1. Nếu a’ là nghịch đảo của a thì
a là nghịch đảo của a’. Ta có (a.b)-1 = b-1.a-1 .
1.1.5.2. Nhóm
1) Định nghĩa 1.1.5
Nhóm: Nhóm là một tập hợp G cùng với phép tốn hai ngơi (.) thỏa mãn
các điều kiện sau [33]:
(1) Tính đóng: với mọi a  G, b  G thì a.b  G.
(2) Tính kết hợp: với mọi a, b, c  G thì a.(b.c) = (a.b).c.
(3) Có phần tử đơn vị e: e.a = a.e = a vói mọi a  G.
(4) Mọi phần tử a  G đều có phần tử nghịch đảo a-1 : a.a-1 = a-1.a = e.

18


Nếu tập G có hữu hạn phần tử thì ta nói nhóm hữu hạn, số phần tử của
nhóm ký hiệu là G gọi là cấp của nhóm . Nếu phép tốn hai ngơi (.) trong
G có tính giao hốn thì ta gọi nhóm là nhóm abelian .
Tính chất:


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

Bậc của phần tử: cho a  G, nếu có một số nguyên dƣơng n sao cho an =
e thì ta nói a có bậc hữu hạn, số nguyên dƣơng n nhỏ nhất nhƣ vậy gọi là
bậc của a, ký hiệu o(a). Nếu không tồn tại n sao cho an = e ta nói a có bậc
vơ hạn.
2) Ví dụ:
(1) Tập số nguyên Z cùng với phép cộng (+) thơng thƣờng là một nhóm
giáo hốn, có phần tử đơn vị là số 0, gọi là nhóm cộng các số nguyên.
(2) Tập Q* các số hữu tỷ khác 0 (hoặc R* tập các số thực khác 0), cùng với
phép nhân (.) thơng thƣờng là một nhóm giao hốn, gọi là nhóm nhân
các số hữu tỷ (số thực) khác 0.
1.1.5.3. Nhóm con
1) Bộ phận ổn định: Một bộ phận B của tập A gọi là ổn định đối với phép
tốn hai ngơi (.) trong A nếu a.b  B với mọi a, b  B. Phép toán (.) của A
áp dụng trên các phần tử của B gọi là phép toán cảm sinh của A trên B.
2) Định nghĩa 1.1.6 (Nhóm con) : Một bộ phận ổn định H của một nhóm G
là nhóm con của G nếu H cùng với phép toán cảm sinh của G trên H là một
nhóm [33].
3) Định lý 1.1.7: Một bộ phận H của một nhóm G là một nhóm con của G khi
và chỉ khi các điều kiện sau thỏa mãn:
(1) Với mọi a, b  H, thì ab  H.
(2) e  H với e là phần tử trung lập của G.
(3) Với mọi a  H thì a-1  H.

19


Hệ quả: Giả sử H là một bộ phận khác rỗng của một nhóm G, các điều

kiện sau là tƣơng đƣơng:
(a) H là một nhóm con của G.
(b) Với mọi a, b  H thì ab  H và a-1  H.
(c) Với mọi a, b  H thì ab-1  H.
4) Ví dụ: Bộ phận mZ gồm các số nguyên là bội của một số nguyên m là một
nhóm con của nhóm cộng các số nguyên Z: Thật vậy áp dụng hệ quả (c),
mZ là nhóm con vì: ma, mb  mZ → ma-mb = m(a-b)  mZ .
1.1.5.4. Nhóm Cyclic
1) Định nghĩa 1.1.7
Cho một nhóm G và một phần tử nào đó thuộc G. Tập hợp:
<a> = {x  G \ x = an với n  Z}
đƣợc gọi là nhóm con cyclic đƣợc sinh bởi a.
Nhóm G đƣợc gọi là nhóm Cyclic nếu có một phần tử a  G sao cho
G = <a>. Phần tử a nhƣ vậy gọi là phần tử sinh của G [33].
2) Ví dụ: Zn với phép tốn cộng theo modulo n là nhóm Cyclic, nhƣng nhóm
nhân Z*n có thể khơng là nhóm Cyclic.
Nhóm nhân Z*n là nhóm Cyclic khi và chỉ khi n có dạng: 2, 4, pk, hoặc 2pk
vói p là số nguyên tố lẻ.
3) Định lý 1.1.8: Cho G là một nhóm, a  G ta có:
(1) Tập hợp <a> là một nhóm con của G.
(2) Nếu K là nhóm con của G, a  K thì <a>

K.

4) Định lý 1.1.9: Nhóm con của một nhóm Cyclic là một nhóm Cyclic

20


5) Định lý 1.1.10: Cho a là một phần tử của nhóm G

(1) Nếu a có bậc vơ hạn và ak = am với k, m  Z thì k = m.
(2) Nếu a có bậc hữu hạn và k  Z thì: ak = e ↔ o(a) \ k.
(3) Nếu a có bậc hữu hạn o(a) = n thì với các số nguyên k, m ta có:
ak = am ↔ k ≡ m (mod n) và <a> = O(a) .
6) Định lý 1.1.11 (Lagrange): Nếu H là nhóm con của nhóm hữu hạn G thì
bậc của H là ƣớc của bậc của G.
Hệ quả 1: Cho G là nhóm hữu hạn có bậc n, với mọi a  G ta có
(a) o(a) \ n.
(b) an = e.
Hệ quả 2: Một nhóm có cấp nguyên tố là nhóm Cyclic.
1.1.5.5. Nhóm cộng Zn và nhóm nhân Zn*
1) Phép tốn trong Zn
Trong Zn ta định nghĩa phép cộng (+) và phép nhân (.) nhƣ sau:
[a] + [b] = [a+b]
[a].[b] = [a.b]
Ta có: Zn cùng với phép cộng nhƣ trên lập thành một nhóm aben, Zn cùng với
phép cộng và phép nhân nhƣ trên lập thành một vành giao hốn có đơn vị.

21


2) Nhóm cộng Zn và nhóm nhân Zn*
Zn = {0, 1, 2, …, n-1} là tập hợp các lớp đồng dƣ theo modulo n cùng
với phép phép toán cộng (+) : [a]n + [b]n = [a+b]n lập thành một nhóm. Nhóm
cộng Zn có n phần tử và phần tử đơn vị là [0]n .
Zn* = {a  Zn : gcd(a, n) = 1} cùng với phép nhân (.): [a]n . [b]n = [a.b]n
lập thành một nhóm gọi là nhóm nhân của Zn, phần tử đơn vị là [1]n.
Ký hiệu  (n) là số các số nguyên dƣơng bé hơn n và nguyên tố với n,
nếu p là số nguyên tố thì  (p) = p-1. Do đó nhóm Zn* có cấp  (n) và nếu p là
số nguyên tố thì nhóm Zp* có cấp p-1.

3) Phần tử nghịch đảo đối với phép nhân
Định nghĩa 1.1.8
Cho a  Zn, nếu tồn tại b  Zn sao cho ab

1 (mod n) thì ta nói b là

phần tử nghịch đảo của a trong Zn, ký hiệu là a-1, a gọi là phần tử khả nghịch.
Định lý 1.1.12
Phần tử a  Zn có nghịch đảo khi và chỉ khi (a,n) = 1.
Nhận xét
Mọi phần tử trong Zn* đều có nghịch đảo. Để tìm phần tử nghịch đảo ta
có thể dùng thuật tốn Euclid mở rộng.
Chứng minh
Nếu aa-1 ≡ 1 (mod n) thì aa-1 = 1+kn ↔ aa-1-kn = 1 → (a,n) =1. Ngƣợc
lại, nếu (a,n) = 1 ta có aa-1+kn = 1 → aa-1 = 1+kn, do đó aa-1 ≡ 1 (mod n).

22


Thuật tốn Euclid mở rộng để tìm phần tử nghịch đảo
procedure invert(a, n);
begin
g0 := n; g1:= a; u0 := 1; u1 := 0; v0 := 0; v1 := 1;
i := 1;
while gi <> 0 do
begin
y := gi-1div gi; gi+1 := gi+1-y.gi;
ui+1 := ui+1-y.ui; vi+1 := vi+1-y.vi;
i := i+1;
end;

x := vi+1;
if x>0 then a-1 := x else a-1 := x+n;
end;
Ví dụ: Giải phƣơng trình 3x ≡ 1 (mod 7)

i

gi

ui

vi

1

7

1

0

1

3

0

1

2


2

1

1

-2

3

3

0

Vì v = 2 = -2 < 0 do đó x = -2+7 = 5.
Ta có 5 là phần tử nghịch đảo nhân của 3 trong Z7.

23

y


1.2. LÝ THUYẾT ĐỘ PHỨC TẠP TÍNH TỐN
1.2.1. Thuật tốn của một bài toán
1.2.1.1. Bài toán
Bài toán đƣợc cấu tạo bởi hai phần:
▪ Input : Các dữ liệu vào của bài tốn.
▪ Output: Các dữ liệu ra (kết quả).
Khơng mất tính chất tổng quát ngƣời ta giả thiết các dữ liệu đều là số nguyên.

1.2.1.2. Định nghĩa thuật toán
Định nghĩa 1.2.1
▪ Bằng trực quan: Thuật toán của một bài toán đƣợc hiểu là một dãy hữu hạn
các qui tắc (chỉ thị, mệnh lệnh) mơ tả một q trình tính tốn để từ Input ta
đƣợc Output của bài toán [7].
▪ Quan niệm tốn học: Một cách hình thức ngƣời ta quan niệm thuật toán là
một máy Turing.
▪ Thuật toán đơn định (Deterministic): Là thuật toán mà kết quả của mọi
phép toán đều đƣợc xác định duy nhất.
▪ Thuật tốn khơng đơn định (NonDeterministic): Là thuật tốn tồn tại ít
nhất một phép tốn mà kết quả của phép tốn đó là khơng duy nhất.
1.2.1.3. Hai mơ hình tính tốn
Hai quan niệm về thuật tốn ứng với hai mơ hình tính tốn.
▪ Mơ hình ứng dụng: Đơn vị nhớ : một ơ nhớ chứa trọn vẹn một dữ liệu. Đơn
vị thời gian: thời gian để thực hiện một phép tính số học hay logic cơ bản.
▪ Mơ hình lý thuyết: Đơn vị nhớ: một ơ nhớ chứa một tín hiệu. Đơn vị thời
gian: thời gian để thực hiện một bƣớc chuyển hình trạng.

24


×