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

Nghiên cứu vấn đề chia sẻ bí mật và ứng dụng trong bỏ phiếu đ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 (804.25 KB, 78 trang )

i
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT&TT




LÊ ĐÌNH QUYẾN



NGHIÊN CỨU VẤN ĐỀ CHIA SẺ BÍ MẬT
VÀ ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ


Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƢỜI HƢỚNG DẪN KHOA HỌC
PGS.TS TRỊNH NHẬT TIẾN



THÁI NGUYÊN, NĂM 2012
ii
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu dƣới
sự hƣớng dẫn của PGS.TS Trịnh Nhật Tiến. Các chƣơng trình thực nghiệm do chính


bản thân tôi lập trình, các kết quả là hoàn toàn trung thực. Các tài liệu tham khảo
đƣợc trích dẫn và chú thích đầy đủ.

TÁC GIẢ LUẬN VĂN



Lê Đình Quyến
iii
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CẢM ƠN

Trƣớc hết em xin trân trọng gửi lời cảm ơn đến toàn thể các thầy cô giáo
Trƣờng Đại học Công nghệ – Đại học Quốc gia Hà Nội và Trƣờng Đại học Công
nghệ thông tin và Truyền thông – Đại học Thái nguyên đã dạy dỗ chúng em trong
suốt quá trình học tập chƣơng trình cao học tại trƣờng.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS Trịnh Nhật
Tiến, Trƣờng Đại học Công nghệ – Đại học Quốc gia Hà Nội đã quan tâm, định
hƣớng và đƣa ra những góp ý, gợi ý, chỉnh sửa quí báu cho em trong quá trình làm
luận văn tốt nghiệp.
Cuối cùng, em xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình và
ngƣời thân đã quan tâm, giúp đỡ và chia sẻ với em trong suốt quá trình làm luận văn
tốt nghiệp.
Thái Nguyên, ngày 28 tháng 10 năm 2012

HỌC VIÊN



Lê Đình Quyến



iv
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
MỤC LỤC
LỜI CAM ĐOAN I
LỜI CẢM ƠN III
MỤC LỤC IV
DANH MỤC CÁC THUẬT NGỮ VI
DANH MỤC CÁC BẢNG VII
DANH MỤC CÁC HÌNH VIII
MỞ ĐẦU 1
CHƢƠNG 1. CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN 3
1.1. LÝ THUYẾT TOÁN HỌC MODULO 3
1.1.1. Hàm phi Euler 3
1.1.2. Đồng dƣ thức 4
1.1.3. Không gian Z
n
5
1.1.4. Nhóm nhân Z
*
n
6
1.1.5. Thặng dƣ 7
1.1.6. Căn bậc modulo 7
1.1.7. Các thuật toán trong Z
n
8
1.1.8. Ký hiệu Legendre và ký hiệu Jacobi 10
1.2. VẤN ĐỀ MÃ HOÁ 13

1.2.1. Mã hoá khoá đối xứng 15
1.2.2. Mã hoá khoá bất đối xứng 16
1.3. VẤN ĐỀ KÍ ĐIỆN TỬ 18
1.4. CHỮ KÍ SỐ 21
1.4.1. Giới thiệu về chữ kí số 21
1.4.2. Sơ đồ chữ kí số 22
1.4.3. Chuẩn chữ kí số 25
1.5. VẤN ĐỀ QUẢN LÝ KHOÁ 26
1.5.1. Khoá và một số khái niệm 26
1.5.2. Các cách tạo khoá 28
1.5.3. Phân phối khoá 35
CHƢƠNG 2. SƠ ĐỒ CHIA SẺ BÍ MẬT 41
2.1. Khái niệm chia sẻ bí mật 41
2.2. Các sơ đồ chia sẻ bí mật 43
2.2.1. Sơ đồ ngƣỡng của Sharmir 43
2.2.2. Cấu trúc mạch đơn điệu 47
2.2.3. Cấu trúc không gian vectơ Brickell 54
2.3. Tính chất mở rộng của các sơ đồ chia sẻ bí mật 58
2.4. Ƣu điểm của sơ đồ ngƣỡng Shamir trong bài toán bỏ phiếu điện tử 59
CHƢƠNG 3. ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ 60
v
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3.1. Một số bài toán về an toàn thông tin trong “Bỏ phiếu điện tử” 60
3.1.1. Bài toán xác thực cử tri 60
3.1.2. Bài toán ẩn danh lá phiếu 61
3.1.3. Bài toán phòng tránh sự liên kết giữa thành viên ban bầu cử và cử tri . 62
3.2. Giải quyết bài toán chia sẻ khóa kí phiếu bầu cử 63
3.2.1. Chia sẻ khóa 63
3.2.2. Khôi phục khóa 63
3.3. Giải quyết bài toán chia sẻ nội dung phiếu bầu cử 64

3.4. Chƣơng trình thử nghiệm 65
3.4.1. Chia sẻ khóa kí phiếu bầu cử 65
3.4.2. Chia sẻ nội dung phiếu bầu cử 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN 69
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 70

vi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC CÁC THUẬT NGỮ

gcd
greatest common divisor (ƣớc số chung lớn nhất)
CRT
Chinese Remainder Theorem (định lý phần dƣ Trung Hoa)
DES
Data Encryption Standard (Tiêu chuẩn mã hóa dữ liệu)
RSA
Rivest, Sharmir, Adleman
SHA
Secure Hash Algorithm (Thuật giải băm an toàn)
PKI
Public Key Infastructure (Hạ tầng khóa công khai)
CA
Certification Authority (Chứng thực chữ kí số)
DSS
Digital Signature Standard (Chuẩn chữ kí số)

vii

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC CÁC BẢNG
Bảng 1.1: Mô tả các bƣớc tính 5
596
mod 1234 9
Bảng 1.2: Độ phức tạp theo bit của các phép toán cơ bản trong Zn 9

Bảng 2.1: Các cấu trúc truy nhập không đẳng cấu 56
viii
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC CÁC HÌNH
Hình 1.1: Sơ đồ hoạt động của mã hóa khóa đối xứng 15
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa bất đối xứng 16
Hình 1.3:Trao đổi khoá Diffie – Hellman 28
Hình 1.4: Kẻ xâm nhập giữa cuộc trong giao thức Diffie – Hellman 29
Hình 1.5: Giao thức trạm tới trạm 30
Hình 1.6: Giao thức trạm tới trạm có sự xâm nhập giữa đƣờng 30
Hình 1.7: Thỏa thuận khóa Girault 33
Hình 1.8: Thoả thuận khoá Girault có sự xâm nhập giữa đƣờng 34

Hình 2.1: Phân chia khóa dựa vào mạch đơn điệu 48
Hình 2.2: Mạch đơn điệu thể hiện cấu trúc truy nhập 50
Hình 2.3: Cấu trúc mạch đơn điệu có tốc độ thông tin ρ = 1/3 52
Hình 2.4: Cấu trúc mạch đơn điệu có tốc độ thông tin ρ = 1/2 53


1
MỞ ĐẦU

Hiện nay Internet đã trở nên rất phổ biến trên toàn thế giới, thông qua mạng

Internet mọi ngƣời có thể trao đổi thông tin với nhau một cách nhanh chóng và
thuận tiện. Những tổ chức có các hoạt động trên môi trƣờng Internet/Intranet phải
đối diện với vấn đề là làm thế nào để bảo vệ những dữ liệu quan trọng, ngăn chặn
những hình thức tấn công, truy xuất dữ liệu bất hợp pháp từ bên trong (Intranet) lẫn
bên ngoài (Internet). Khi một ngƣời muốn trao đổi thông tin với một ngƣời hay một
tổ chức nào đó thông qua mạng máy tính thì yêu cầu quan trọng là làm sao để đảm
bảo thông tin không bị sai lệch hoặc bị lộ do sự can thiệp của ngƣời thứ ba. 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.
Vấn đề chia sẻ bí mật đƣợc đã đƣợc nghiên cứu từ những năm 70 của thế kỷ
trƣớc. Ý tƣởng chính của chia sẻ bí mật dựa trên nguyên tắc đơn giản là không tin
vào bất cứ ai. Để đảm bảo an toàn một thông tin nào đó thì ta không thể trao nó cho
một ngƣời nắm giữ mà phải chia nhỏ thành các mảnh và chỉ trao cho mỗi ngƣời một
hoặc một số mảnh, sao cho một ngƣời với một số mảnh mình có thì không thể tìm
ra thông tin bí mật. Việc phân chia các mảnh phải theo một sơ đồ chia sẻ bí mật
nhất định, sau đó có thể khôi phục lại thông tin bí mật ban đầu.
Đƣợc sự gợi ý của giáo viên hƣớng dẫn và nhận thấy tính thiết thực của vấn
đề, em đã chọn đề tài: Nghiên cứu vấn đề chia sẻ bí mật và ứng dụng trong “Bỏ
phiếu điện tử” để làm nội dung cho luận văn tốt nghiệp của mình.
Luận văn này tập trung vào nghiên cứu cơ sở lý thuyết toán học và một số kỹ
thuật mật mã để thực hiện chia sẻ thông tin mật, sau đó áp dụng giải quyết một số
bài toán về an toàn thông tin trong “Bỏ phiếu điện tử”.



2
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Nội dung chính của luận văn gồm ba chƣơng
Chƣơng 1: Các khái niệm cơ bản
Trong chƣơng này luận văn trình bày các kiến thức cơ bản về lý thuyết toán

học Modulo, vấn đề mã hóa, kí điện tử, chữ kí số và vấn đề quản lý khóa.

Chƣơng 2: Sơ đồ chia sẻ bí mật
Nội dung chƣơng 2 trình bày khái niệm về chia sẻ bí mật, các sơ đồ chia sẻ
bí mật và tính chất mở rộng của các sơ đồ chia sẻ bí mật, ƣu điểm của sơ đồ Shamir
trong bài toán bỏ phiếu điện tử.

Chƣơng 3: Ứng dụng trong bỏ phiếu điện tử.
Chƣơng này đề cập tới một số bài toán về an toàn thông tin trong “Bỏ phiếu
điện tử”, Giải quyết bài toán chia sẻ khóa ký phiếu bầu cử, Giải quyết bài toán chia
sẻ nội dung phiếu bầu cử. Chƣơng trình thử nghiệm đƣợc viết bằng ngôn ngữ lập
trình C# 2012.

3
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
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 mà bất kỳ bài toán an toàn thông tin
nào cũng phải đề cập đến, đó là các vấn đề về lý thuyết toán học sử dụng trong bảo
mật thông tin, mã hoá thông tin, chữ ký điện tử, khái niệm khoá, các cách tạo khoá,
các phƣơng pháp phân phối khoá, vấn đề định danh. Qua đó, hình thành cơ sở lý
thuyết cho an toàn truyền tin trên mạng máy tính.
Các khái niệm và định nghĩa trong chƣơng này đƣợc tham khảo trong các tài
liệu: Lý thuyết mật mã và an toàn thông tin; Contemporary Cryptography.



1.1. LÝ THUYẾT TOÁN HỌC MODULO
1.1.1. Hàm phi Euler
1/. Định nghĩa

Cho n ≥1. Φ(n) đƣợc định nghĩa là số các số nguyên trong khoảng [1, n]
nguyên tố cùng nhau với n. Hàm Φ đƣợc gọi là hàm phi Euler.[4 – tr79]

2/. Tính chất của hàm phi Euler
 Nếu p là số nguyên tố thì Φ(n) = p – 1.
 Tính nhân của hàm phi Euler: Nếu gcd(m, n) = 1 thì Φ(mn) = Φ(m)Φ(n) (trong
đó gcd(m, n) là ký hiệu ƣớc số chung lớn nhất của m và n).
 Nếu
12
12

k
e
ee
k
n p p p
trong đó p
1
, p
2
, , p
k
là các thừa số nguyên tố của n thì:
12
1 1 1
( ) (1 )(1 ) (1 )    
k
nn
p p p
.







4
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.1.2. Đồng dƣ thức
1/. Định nghĩa
Cho a và b là các số nguyên, a đƣợc gọi là đồng dƣ với b theo modulo n, ký
hiệu là a  b (mod n) nếu n chia hết (a – b). Số nguyên n đƣợc gọi là modulus của
đồng dƣ.[4 – tr81]

2/. Ví dụ:
13  7 (mod 3) bởi vì 13 – 7 = 2*3
–11  4 (mod 5) bởi vì –11 – 4 = – 3*5

3/. Tính chất của đồng dƣ
Cho a, a
1
, b, b
1
, c  Z. Ta có các tính chất sau:
 a  b (mod n) nếu và chỉ nếu a và b có cùng số dƣ khi chia cho n.
 a  a (mod n) (Tính phản xạ).
 Nếu a  b (mod n) thì b  a (mod n) (Tính đối xứng).
 Nếu a  b (mod n) và b  c (mod n) thì a  c (mod n) (Tính bắc cầu).
 Nếu a  a
1

(mod n), b  b
1
(mod n) thì a + b  a
1
+ b
1
(mod n)
và ab  a
1
b
1
(mod n).

Lớp tƣơng đƣơng [1 – tr24] của một số nguyên a là tập hợp các số nguyên
đồng dƣ với a theo modul n. Từ các tính chất 2, 3 và 4 ta thấy: cho n cố định, các số
đồng dƣ với n theo modulo n trong không gian Z đƣợc xếp vào một một lớp tƣơng
đƣơng. Nếu a = qn + r, trong đó 0 ≤ r < n thì a  r (mod n). Vì vậy mỗi số nguyên a
là đồng dƣ theo modul n với duy nhất một số nguyên trong khoảng từ 0 đến n – 1 và
đƣợc gọi là thặng dƣ nhỏ nhất của a theo modul n. Cũng vì vậy, a và r cùng thuộc
một lớp tƣơng đƣơng. Do đó r có thể đơn giản đƣợc sử dụng để thể hiện lớp tƣơng
đƣơng.



5
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.1.3. Không gian Z
n

1/. Các định nghĩa trong không gian Z

n
 Các số nguyên theo modul n ký hiệu Z
n
là một tập hợp các số nguyên
{0,1,2,3,…,n–1}. Các phép toán cộng, trừ, nhân trong Z
n
đƣợc thực hiện theo
modulo n.[1 – tr24]
Ví dụ: Z
25
= {0, 1, 2, …, 24}. Trong Z
25
: 13 + 16 = 4, bởi vì: 13 + 16 = 29  4
(mod 25). Tƣơng tự, 13*16 = 8 trong Z
25

 Cho a  Z
n
. Nghịch đảo nhân của a theo modulo n là một số nguyên x  Z
n
sao cho a*x  1 (mod n). Nếu x tồn tại thì đó là giá trị duy nhất và a đƣợc gọi
là khả nghịch, nghịch đảo của a ký hiệu là a
-1
.[1 – tr25]
 Cho a, b  Z
n
. Phép chia của a cho b theo modulo n là tích của a và b
-1
theo
modulo n, và chỉ dƣợc xác định khi b có nghịch đảo theo modulo n.[1 – tr25]


2/. Các tính chất trong không gian Z
n
 Cho a  Z
n
, a có nghịch đảo khi và chỉ khi gcd(a, n) = 1. [4 – tr83]
Ví dụ: Các phần tử khả nghịch trong Z
9
là: 1, 2, 4, 5, 7 và 8. trong đó 4
-1
= 7 vì
4 .7  1 (mod 9)
 Giả sử d = gcd(a, n). Phƣơng trình đồng dƣ ax  b (mod n) có nghiệm x nếu và
chỉ nếu d chia hết cho b [1 – tr25], trong trƣờng hợp các nghiệm d nằm trong
khoảng 0 đến n – 1 thì các nghiệm đồng dƣ theo modulo n / d.

3/. Định lý phần dƣ Trung Hoa (CRT)
Nếu các số nguyên n
1
, n
2
, …, n
k
là các số nguyên tố cùng nhau từng đôi một
thì hệ phƣơng trình đồng dƣ:
x  a
1
(mod n
1
)

x  a
2
(mod n
2
)

x  a
k
(mod n
k
)
có nghiệm duy nhất theo modulo n = n
1
n
2
… n
k
[1 – tr26]

6
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4/. Thuật toán của Gausse
Nghiệm x trong hệ phƣơng trình đồng dƣ trong định lý phần dƣ Trung Hoa
đƣợc tính nhƣ sau:
x =


k
i 1
a

i
N
i
M
i
mod n, trong đó: N
i
= n/n
i
, M
i
= N
i
-1
mod n
i
[1 – tr26]

Ví dụ:
Cặp đồng dƣ: x  3 (mod 7 ) và x  7 (mod 13) có nghiệm duy nhất x  59 (mod 91)
Tính chất:
Nếu gcd(n
1,
n
2
) = 1 thì cặp đồng dƣ x  a (mod n
1
) và x  a (mod n
2
) có

nghiệm duy nhất x  a (mod n
1
n
2
).


1.1.4. Nhóm nhân Z
*
n

1/. Các định nghĩa trong nhóm nhân Z
*
n
 Nhóm nhân của Z
n
ký hiệu là Z
*
n
= {a  Z
n
| gcd (a, n) = 1}. Đặc biệt, nếu n là
số nguyên tố thì Z
*
n
= {a  Z
n
| 1 ≤ a ≤ n – 1}. [1 – tr27]
 Cho a  Z
n

*
.
Bậc của a, ký hiệu là ord(a) là số nguyên dƣơng t nhỏ nhất sao
cho a
t
 1 (mod n). [1 – tr27]

2/. Các tính chất trong Z
n
*
 Cho n ≥ 2 là số nguyên. [1 – tr27, tr28]
o (Định lý Euler) Nếu a  Z
n

*
thì a
Φ(n)
 1 (mod n).
o Nếu n là tích của các số nguyên tố phân biệt và nếu r  s (mod Φ(n))
thì a
r
 a
s
(mod n) với mọi số nguyên a.
 Cho p là số nguyên tố. [1 – tr28]
o (Định lý Fermat) Nếu gcd(a, p) = 1 thì a
p-1
 1 (mod p).
o Nếu r  s (mod p – 1) thì a
r

 a
s
(mod p) với mọi số nguyên a.
o Đặc biệt a
p
 a (mod p) với mọi số nguyên a.


7
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.1.5. Thặng dƣ
1/. Định nghĩa thặng dƣ
Cho a  Z
n
*
, a đƣợc gọi là thặng dƣ bậc 2 theo modulo n hoặc bình phƣơng
theo modulo n nếu tồn tại x  Z
n
*
sao cho x
2
 a (mod n). Nếu không tồn tại x thì a
đƣợc gọi là thặng dƣ không bậc 2 theo modulo n. Tập hợp các thặng dƣ bậc 2 theo
modulo n ký hiệu là Q
n
và tập hợp các thặng dƣ không bậc 2 theo modulo n ký hiệu

___
Q
n

. [1 – tr28]
Chú ý: Vì định nghĩa 0  Z
n
*
nên 0  Q
n
và 0 
___
Q
n

2/. Ví dụ
Cho n = 21. Khi đó: Q
21
= {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  Q
n
. Nếu a  Z
n
*
thoả mãn x
2

 a (mod n) thì x đƣợc gọi là căn bậc 2
của a theo modulo n. [4 – tr91]

2/. Tính chất (Số căn bậc 2)
 Nếu p là một số nguyên tố lẻ, a  Q
n
thì a có chính xác 2 căn bậc 2 theo
modulo p.
 Tổng quát hơn: cho
12
12

k
e
ee
k
n p p p
trong đó p
i
là các số nguyên tố lẻ phân biệt
và e
i
≥ 1. Nếu a  Q
n
thì a có chính xác 2
k
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 của 121 modulo 315 là 11, 74, 101, 151, 164, 214, 241 và 304.


8
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.1.7. Các thuật toán trong Z
n

Cho n là số nguyên dƣơng, các phần tử trong Z
n
sẽ đƣợc thể hiện bởi các số
nguyên {0, 1, 2,…, n–1}. Ta thấy rằng nếu a, b  Z
n
thì:
( ) mod
a b nÕu a b n
a b n
a b n nÕu a b n
  



   


Vì vậy, phép cộng modulo (và phép trừ modulo) có thể đƣợc thực hiện mà
không cần thực hiện các phép chia. Phép nhân modulo của a và b có thể đƣợc thực
hiện bằng phép nhân thông thƣờng a với b nhƣ các số nguyên bình thƣờng, sau đó
lấy phần dƣ của kết quả sau khi chia cho n. Phép tính nghịch đảo trong Z
n

có thể
đƣợc thực hiện nhờ sử dụng thuật toán Euclidean mở rộng nhƣ mô tả sau:


1/. Thuật toán tính nghịch đảo nhân trong Z
n
INPUT: a  Z
n

OUTPUT: a
-1
mod n, nếu tồn tại.
 Sử dụng thuật toán Euclidean mở rộng sau để tìm các số nguyên x và y sao
cho: ax + ny = d với d = gcd(a, n).
 Nếu d > 1 thì a
-1
mod n không tồn tại. Ngƣợc lại, return (x).

2/. Thuật toán Euclidean mở rộng [4 – tr69]
INPUT: 2 số nguyên dƣơng a và b với a ≥ b.
OUTPUT: d = gcd(a, b) và các số nguyên x, y thoả mãn: ax + by = d
 Nếu b == 0 thì đặt d = a; x = 1; y = 0; return (d, x, y);
 x
2
= 1; x
1
= 0; y
2
= 0; y
1

= 1;
 Khi b > 0 thực hiện:
q = [a / b]; r = a – qb; x

= x
2
– qx
1
; y = y
2
– qy
1
;


a = b; r = b; x
2
= x
1
; x
1
= x; y
2
= y
1
; y
1
= y;
 d = a; x


= x
2
; y

= y
2
; return (d, x, y);

Số mũ modulo có thể đƣợc tính một các hiệu quả bằng thuật toán bình phƣơng
và nhân liên tiếp, nó đƣợc sử dụng chủ yếu trong nhiều giao thức mã hoá.
9
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3/. Thuật toán bình phƣơng liên tiếp để tính số mũ modulo trong Z
n
. [4 – tr85]
INPUT: a  Z
n
và số nguyên dƣơng 0 ≤ k < n trong đó k có biểu diễn nhị phân là:
k =


t
i 0
k
i
2
i

OUTPUT: a
k

mod n
 b

= 1; Nếu k == 0 return (b);
 A

= a; Nếu k
0
== 1 thì đặt b

= a;
 For i = 1 to t do
A

= A
2
mod n;
Nếu k
i
== 1 thì b

= A * b mod n;
 Return (b);

Ví dụ: (Tính số mũ modulo)
i
0
1
2
3

4
5
6
7
8
9
k
i
0
0
1
0
1
0
1
0
0
1
A
5
25
625
681
1011
369
421
779
947
925
b

1
1
625
625
67
67
1059
1059
1059
1013

Bảng 1.1: Mô tả các bƣớc tính 5
596
mod 1234

Độ phức tạp theo bit của các phép toán cơ bản trong Z
n
nhƣ sau:
Phép toán
Độ phức tạp về bit
Cộng modulo (a + b) mod n
O(lg n)
Trừ modulo (a – b) mod n
O(lg n)
Nhân modulo (a b) mod n
O((lg n)
2
)
Nghịch đảo theo modulo a
-1

mod n
O((lg n)
2
)
Số mũ modulo a
k
mod n, k < n
O((lg n)
3
)

Bảng 1.2: Độ phức tạp theo bit của các phép toán cơ bản trong Z
n

10
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.1.8. Ký hiệu Legendre và ký hiệu Jacobi
1/. Định nghĩa ký hiệu Legendre
Cho p là số nguyên tố lẻ và một số nguyên a. Ký hiệu Legendre (
p
a
) đƣợc
định nghĩa là: [1 – tr29]
0|
( ) 1
1
p
P
nÕu p a
a

nÕu a Q
p
nÕu a Q









2/. Tính chất của ký hiệu Legendre
Cho số nguyên tố lẻ p; a, b  Z. Ký hiệu Legendre có tính chất sau: [1 – tr29, tr30]
 (
p
a
)  a
(p-1)/2
(mod p). Trƣờng hợp đặc biệt: (
p
1
) = 1 và (
p
1
) = (–1)
(p-1)/ 2

Bởi vậy nên: –1  Q
p

nếu p  1 (mod 4); và –1 
___
Q
n
nếu p  3 (mod 4).
 (
p
ab
) = (
p
a
)(
p
b
) . Vì vậy nếu a Z
p
*
thì (
p
a
2
) = 1
 Nếu a  b (mod p) thì (
p
a
) = (
p
b
)


8/)1(
2
)1()
2
(


p
p
 (
p
2
) = 1 nếu p  1 hoặc 7 (mod 8)
và (
p
2
) = –1 nếu p  3 hoặc 5 (mod 8)
 Nếu q là số nguyên tố lẻ khác p thì: (
q
p
) = (
p
q
) (–1)
(p-1)(q-1) / 4
.
Nói cách khác: (
q
p
) = (

p
q
) trừ khi cả p và q đều đồng dƣ với 3 theo modulo 4.
Ngƣợc lại thì (
q
p
) = – (
p
q
)
Ký hiệu Jacobi là sự tổng quát hoá của ký hiệu Legendre cho các số nguyên n là lẻ
mà không cần phải là nguyên tố.

11
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3/. Định nghĩa ký hiệu Jacobi
Cho n ≥ 3 là lẻ với các thừa số nguyên tố:
12
12

k
e
ee
k
n p p p
. Ký hiệu Jacobi (
n
a
) đƣợc
định nghĩa là:

12
12
( ) ( ) ( ) ( )
k
e e e
k
a a a a
n p p p

[1 – tr29]
Rõ ràng, nếu n là số nguyên tố thì ký hiệu Jacobi là ký hiệu Legendre.

4/. Tính chất của ký hiệu Jacobi
Cho m ≥ 3, n ≥ 3 là số nguyên lẻ và a, b Z. Ký hiệu Jacobi có các tính chất sau:
 (
n
a
) = 0, 1 hoặc –1, và (
n
a
) = 0 khi và chỉ khi gcd(a, n) 1.
 (
n
ab
) = (
n
a
)(
n
b

) . Vì vậy, nếu a  Z
n
*
thì
1)(
2

n
a
.
 (
mn
a
) = (
m
a
)(
n
a
).
 Nếu a  b (mod n) thì (
n
a
) = (
n
b
).
 (
n
1

) = 1.
 (
n
1
) = –(1)
(n-1)/2
. Vì vậy (
n
1
) = 1 nếu n  1 (mod 4)
và (
n
1
) = –1 nếu n  3 (mod 4).

8/)1(
2
)1()
2
(


n
n
. Vì vậy, (
n
2
) = 1 nếu p  1 hoặc 7 (mod 8)
và (
n

2
) = –1 nếu p  3 hoặc 5 (mod 8).
 (
n
m
) = (
m
n
) (–1)
(m-1)(n-1) / 4
.
Ngoài ra, (
n
m
) = (
m
n
) trừ khi cả m và n đều đồng dƣ với 3 theo modulo 4.
Ngƣợc lại thì (
n
m
) = – (
m
n
).
12
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Bằng các tính chất Jacobi, ta suy ra rằng: nếu n lẻ và a = 2
e
a

1
với a
1
lẻ thì
4/)1)(1(
1
11
1
)1)(
mod
()
2
())(
2
()(


na
e
e
a
an
nn
a
nn
a

Từ đó có thuật toán tính (
n
a

) mà không yêu cầu tính các thừa số nguyên tố của n.

5/. Thuật toán tính ký hiệu Jacobi (và ký hiệu Legendre)
JACOBI(a, n)
INPUT: số nguyên lẻ n ≥ 3 và một số nguyên a, 0 ≤ a < n
OUTPUT: Ký hiệu Jacobi (
n
a
) (và là ký hiệu Legendre khi n là số nguyên tố)
 Nếu a == 0 thì return (0);
 Nếu a == 1 thì return (1);
 Viết a = 2
e
a
1
với a
1
lẻ
 Nếu e chẵn thì đặt s = 1; Nếu không thì đặt s = 1 nếu n  1 hoặc 7 (mod 8)
hoặc đặt s = –1 nếu n  3 hoặc 5 (mod 8).
 Nếu n  3 (mod 4) và a
1
 3 (mod 4) thì đặt s = – s;
 Đặt n
1
= n mod a
1
;
 Nếu a
1

== 1 thì return (s); Ngƣợc lại thì return (s . JACOBI(a
1
, n
1
));
Thuật toán trên chạy trong thời gian O((lg n)
2
) phép tính bit.

6/. Ví dụ (Tính ký hiệu Jacobi)
Cho a = 158 và và n = 235. Ký hiệu Jacobi (
235
158
) đƣợc tính nhƣ sau:
(
235
158
) = (
235
2
)(
235
79
) = (–1) (
79
235
)(–1)
78. 234 / 4
= (
79

77
)
= (
77
79
)(–1)
76 . 78 / 4
= (
77
2
) = –1



13
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.2. VẤN ĐỀ MÃ HOÁ
Mặc dù mã hoá đã đƣợc sử dụng từ thời xa xƣa trong các hoạt động ngoại
giao và quân sự nhƣng chỉ sau khi bài báo “Lý thuyết truyền tin trong các hệ thống
bảo mật” của Claude Shannon ra đời nó mới trở thành một môn khoa học. Trƣớc đó
các vấn đề về mã hoá, mật mã gần nhƣ là một môn “nghệ thuật”.
Mã hoá là phần rất quan trọng trong vấn đề bảo mật. Mã hoá ngoài nhiệm vụ
chính là làm cho tài liệu an toàn hơn, nó còn có một lợi ích quan trọng 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 cẩn mật không cho ngƣời nào có thể “xâm nhập” vào lấy dữ liệu, ngƣời
ta có thể truyền một tài liệu đã đƣợc mã hoá trên bất cứ đƣờng truyền nào mà không
lo dữ liệu bị đánh cắp vì nếu dữ liêu có bị đánh cắp đi nữa thì dữ liệu đó cũng không
dùng đƣợc.

Một số khái niệm liên quan:

Thuật toán mã hoá/ giải mã: là thuật toán dùng để chuyển thông tin thành dữ
liệu mã hoá hoặc ngƣợc lại.
Khoá: là thông tin mà thuật toán mã/ giải mã sử dụng để mã/ giải mã thông tin.
Mỗi khi một thông tin đã đƣợc mã hoá thì chỉ có những ngƣời có khoá thích hợp
mới có thể giải mã. Nếu không thì dù dùng cùng một thuật toán giải mã nhƣng cũng
không thể phục hồi lại thông tin ban đầu. Đây là đặc điểm quan trọng của khoá: mã
hoá chỉ phụ thuộc vào khoá mà không phụ thuộc vào thuật toán mã/ giải mã. Điều
này giúp cho một thuật toán mã/ giải mã có thể đƣợc sử dụng rộng rãi.
Với hình thức khá phổ biến hiện nay là truyền tin qua thƣ điện tử và không sử
dụng các công cụ mã hoá, bảo mật cũng nhƣ chữ ký điện tử thì các tình huống sau
có thể xảy ra:
 Không chỉ nguời nhận mà ngƣời khác cũng có thể đọc đƣợc thông tin.
 Thông tin mà ta nhận đƣợc có thể không phải là của ngƣời gửi đúng đắn.
 Thông tin nhận đƣợc bị ngƣời thứ ba sửa đổi.
 Bị nghe trộm: thông tin đƣợc truyền đi trên đƣờng truyền có thể bị ai đó “xâm
nhập” vào lấy ra, tuy nhiên vẫn đến đƣợc ngƣời nhận mà không bị thay đổi.
14
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
 Bị thay đổi: thông tin bị chặn lại ở một nơi nào đó trên đƣờng truyền và bị
thay đổi. Sau đó thông tin đã bị thay đổi này đƣợc truyền tới cho ngƣời nhận
nhƣ không có chuyện gì xảy ra.
 Bị lấy cắp: thông tin bị lấy ra nhƣng hoàn toàn không đến đƣợc ngƣời nhận.

Khi đó thì khỏi nói đến thƣơng mại điện tử, chính phủ điện tử với nền quản
lý hành chính điện tử, Để giải 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 nhận, nó sẽ đƣợc giải mã trở lại.
Để đảm bảo rằng chỉ ngƣời cần nhận có thể đọc đƣợc thông tin mà ta gửi khi
biết rằng trên đƣờng đi, nội dung thông tin có thể bị theo dõi và đọc trộm, ngƣời ta
sử dụng 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á lại và kết quả là ta nhận đƣợc một

nội dung thông tin “không có ý nghĩa”. Khi thông điệp bị theo dõi hoặc bị bắt giữ
trên đƣờng đi, để hiểu đƣợc thông tin của bạn, kẻ tấn công phải làm một việc là giải
mã nó. Thuật toán mã hoá càng tốt thì chi phí cho giải mã đối với kẻ tấn công càng
cao. Khi chi phí giải mã cao hơn giá trị thông tin thì coi nhƣ bạn đã thành công
trong vấn đề bảo mật.
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 chính là mã hóa với khóa đối xứng và mã hóa với khóa bất đối xứng.








15
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.2.1. Mã hoá khoá đối xứng
Hệ mã hóa khóa đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã là
“giống nhau”, theo nghĩa biết đƣợc khóa này thì “dễ” tính đƣợc khóa kia. Vì vậy
phải giữ bí mật cả hai khóa.
Đặc biệt có một số hệ mã hóa có khóa lập mã và khóa giải mã trùng nhau (ke
= kd), nhƣ hệ mã hóa “dịch chuyển” hay DES.






Hình 1.1: Sơ đồ hoạt động của mã hóa khóa đối xứng


1/. Ƣu điểm
 Tốc độ mã/ giải mã nhanh. Đây là ƣu điểm nổi bật của mã đối xứng.
 Sử dụng đơn giản: có thể dùng một khoá cho cả 2 bƣớc mã và giải mã.

2/. Nhƣợc điểm:
 Đòi hỏi khoá phải đƣợc 2 bên gửi/ nhận trao tận tay nhau vì không thể truyền
khoá này trên đƣờng truyền mà không đƣợc bảo vệ. Điều này làm cho việc sử
dụng khoá trở nên không thực tế.
 Không an toàn: càng nhiều ngƣời biết khoá thì độ rủi ro càng cao.
 Trong trƣờng hợp khoá mã hoá thay đổi, cần thay đổi đồng thời ở cả ngƣời gửi
và ngƣời nhận, khi đó rất khó có thể đảm bảo đƣợc là chính bản thân khoá
không bị đánh cắp trên đƣờng đi.
 Không cho phép ta tạo ra chữ ký điện tử.



Bản rõ
Mã hóa
Giải mã
Bản rõ
Khóa
Khóa
Bản mã
16
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3/. Một số thuật toán mã hoá khóa đối xứng
 DES: 56 bit, không an toàn. Có thể dễ dàng bị bẻ khoá trong khoảng vài phút.
 Triple DES, DESX, GDES, RDES: mở rộng độ dài của khoá ở mã DES lên tới
168 bit.

 RC2, RC4, RC5: độ dài khoá có thể lên tới 2048 bit.
 IDEA (International Data Encryption Algorithm): 128 bit, thƣờng dùng trong
các chƣơng trình email.
 Blowfish: 448 bit.


1.2.2. Mã hoá khoá bất đối xứng
Hệ mã hóa khóa bất đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã
là khác nhau (ke ≠ kd), biết đƣợc khóa này cũng khó tính đƣợc khóa kia. Hệ mã này
còn đƣợc gọi là hệ mã hóa khóa công khai.
Khóa lập mã cho công khai, gọi là khóa công khai. Khóa giải mã giữ bí mật,
gọi là khóa bí mật.






Hình 1.2: Sơ đồ hoạt động của mã hóa khóa bất đối xứng

1/. Ƣu điểm
Đây là loại mã hoá đƣợc sử dụng chủ yếu trên Internet. Một ngƣời muốn sử
dụng loại mã hoá này cần tạo ra một cặp khoá công khai/ bí mật. Anh ta có thể
truyền khoá công khai của mình tới bất cứ ai muốn giao tiếp với anh ta mà không sợ
ngƣời khác lấy khoá này. Cô ta sẽ mã hoá thông điệp của mình bằng khoá công khai
đó và gửi tới cho anh ta. Dĩ nhiên là chỉ mình anh ta với khoá bí mật của mình mới
có thể thấy đƣợc thông điệp của cô. Nhƣ vậy kẻ tấn công, cho dù có biết nội dung
Bản rõ
Mã hóa
Giải mã

Bản rõ
Khóa mã
Bản mã
Khóa giải
17
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
của khoá công khai và nội dung của thông tin đã bị mã hoá vẫn không thể giải mã
đƣợc thông tin. Lý do là tính ngƣợc khoá bí mật từ khoá công khai hoặc là rất khó
khăn, nếu không nói là không thể. Điều này đạt đƣợc trên nguyên tắc sử dụng các
hàm một chiều trong toán học khi tính hàm y = f(x) là đơn giản nhƣng ngƣợc lại
việc tính giá trị y khi đã biết x là rất khó khăn.

2/. Nhƣợc điểm
Tốc độ mã hoá chậm: tốc độ mã hoá nhanh nhất của loại mã bất đối xứng
vẫn chậm hơn nhiều lần so với mã đối xứng. Do đó ngƣời ta thƣờng kết hợp 2 loại
mã hoá để nâng cao tốc độ mã hoá.

3/. Một số thuật toán mã hoá bất đối xứng
 RSA: Loại mã này đƣợc dùng nhiều nhất cho web và chƣơng trình email. Độ
dài khoá thông thƣờng là từ 512 đến 1024 bit.
 ElGamal: 512 đến 1024 bit.


















×