MỤC
LỤC
LỜI MỞ
Đ
Ầ
U
1
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
2
1.1. KHÁI NIỆM TRONG SỐ
H
Ọ
C
2
1.1.1.
Ƣớc
chung lớn nhất và bội chung
nhỏ
nh
ấ
t
2
1.1.1.1. Khái niệm 2
1.1.1.2. Tính
chất
2
1.1.2. Quan
hệ đồng
dƣ
3
1.1.2.1. Khái niệm 3
1.1.2.2. Tính
chất
3
1.1.3. Số nguyên
tố
4
1.1.3.1. Khái niệm 4
1.1.3.2. Định lý 4
1.1. KHÁI NIỆM TRONG ĐẠI
SỐ
5
1.2.1. Nhóm 5
1.2.1.1. Khái niệm 5
1.2.1.2. Nhóm
Cyclic
6
1.2.1.3. Nhóm(Z
n
*
, phép nhân mod n) 6
1.2.1.4. Phần tử nghịch
đảo đối
với phép nhân 7
1.2.2.
Vành
7
1.2.3.
Trƣờng
8
1.2.4. Không gian vector 11
1.3. KHÁI NIỆM TRONG MẬT
MÃ
12
1.3.1. Một
số
khái
niệm
12
1.3.1.1. Khái niệm Mã hóa dữ
liệu
12
1.3.1.2.
Lƣợc đồ
chữ ký
số
12
1.3.1.3.
Hàm
bă
m
13
1.3.2. Một
số
thuật ngữ liên quan 14
1.4. GIỚI THIỆU VỀ CHỮ KÝ
S
Ố
15
1.4.1. Quy trình tạo và
kiểm
tra một chữ ký
số
15
1.4.1.1. Quy trình tạo ra một chữ ký
số:
15
1.4.1.2. Quy trình kiểm tra một chữ ký
s
ố
:
16
1.4.1.3. So sánh
giữa các phƣơng pháp mã hóa
sử dụng khóa công khai 17
1.4.2. Chữ ký bội 19
1.4.2.1. Chữ ký nối tiếp 19
1.4.2.2. Chữ ký song song 19
Chương 2. CHỮ KÝ BỘI DỰA TRÊN HỆ MẬT RSA 20
2.1. HỆ MẬT RSA 20
2.1.1. Thuật toán hình thành cặp
khóa
20
2.1.2. Thuật toán mã hóa khóa công khai bằng hệ mật RSA 20
2.1.2.1. Thuật toán mã hóa 20
2.1.2.2. Thuật toán giải mã 20
2.1.3. Thuật toán chữ ký số 20
2.1.3.1. Thuật toán hình thành chữ ký 20
2.1.3.2. Thuật toán
kiểm
tra chữ
ký
21
2.1.4. Độ an toàn của
hệ
mã hóa
RSA
21
2.2. LƢỢC ĐỒ CHỮ
KÝ
CƠ SỞ DỰA TRÊN HỆ MẬT
RSA
21
2.2.1.
Lƣợc đồ
chữ ký
cơ sở
21
2.2.1.1. Hình thành tham
số hệ thống
và khóa 21
2.2.1.2 Tạo chữ ký và
kiểm
tra chữ ký 22
2.2.2. Tính
đúng đắn của lƣợc đồ
chữ ký
cơ
sở 23
2.2.3. Mức
độ
an toàn
của lƣợc đồ
chữ ký
cơ s
ở
24
2.3. CHỮ KÝ BỘI TRÊN HỆ MẬT RSA 24
2.3.1.
Lƣợc đồ
chữ ký bội nối tiếp 24
2.3.1.1. Hình thành tham
số hệ thống
và khóa 24
2.3.1.2. Chứng nhận và
kiểm
tra tính hợp pháp
của
đ
ố
i
tƣợng
ký 25
2.3.1.3. Hình thành và
kiểm
tra chữ ký bội nối
tiếp
26
2.3.2.
Lƣợc đồ
chữ ký bội song song 28
2.3.2.1. Hình thành các tham
số
hệ thống và
khóa
28
2.3.2.2. Chứng nhận và
kiểm
tra tính hợp pháp
của các
đ
ố
i
tƣợng ký
28
2.3.2.3. Hình thành và
kiểm
tra chữ ký bội song song 28
Chương 3. CHỮ KÝ BỘI TRÊN
ĐƢỜNG
CONG
ELLIPTIC
30
3.1. CÁC KHÁI NIỆM VỀ
ĐƢỜNG
CONG
ELLIPTIC
30
3.1.1. Công thức
Weiertrasse
và
đƣờng
cong
Elliptic
30
3.1.2. Các
phép toán trên đƣờng
cong Elliptic 31
3.1.3. Bài toán Logarith rời
rạc trên đƣờng
cong Elliptic
(ECDLP)
33
3.2. HỆ MẬT TRÊN
ĐƢỜNG
CONG ELLIPTIC 34
3.2.1. Cách nhúng
bản rõ lên đƣờng
cong Elliptic 34
3.2.1.1. Nhúng (Imbeding) 34
3.2.1.2. Mặt nạ (Mask) 34
3.2.2. Các hệ
mật trên đƣờng
cong Elliptic
(ECC)
35
3.2.2.1. Hệ
mã hóa
“tựa”
Elgamal
35
3.2.2.2. Hệ mã hóa
Menezes-Vantone
35
3.2.3.
Trao đổi
khóa Diffie –
Hellman trên đƣờng
cong Elliptic 36
3.2.3.1.
Mô hình trao đổi
khóa Diffie –
Hellman.
36
3.2.3.2.
Mô hình trao đổi
khóa Elliptic Curve Diffie – Hellman 36
3.2.4. Lựa
chọn đƣờng
cong Elliptic phù
hợp
36
3.3. CHỮ KÝ BỘI MÙ TRÊN
ĐƢỜNG
CONG ELLIPTIC 40
3.3.1. Sơ
đồ
chữ ký
ECDSA
40
3.3.1.1. Sinh khóa: 40
3.3.1.2. Ký trên bản rõ
m
: 40
3.3.1.3.
Kiểm
tra chữ ký: 41
3.3.1.4. Chứng minh 41
3.3.2. Sơ
đồ
chữ ký mù Harn trên
ECC
41
3.3.2.1. Sinh khóa 41
3.3.2.2. Ký mù 42
3.3.2.3. Chứng minh 42
3.3.3. Sơ
đồ
chữ ký số bội
trên đƣờng
cong Elliptic 42
3.3.3.1. Khởi tạo tham
số
công khai 43
3.3.3.2.
Lƣợc đồ
chữ ký bội song song 44
3.3.3.3.
Lƣợc đồ
chữ ký bội tuần tự 47
3.3.4. Sơ
đồ
chứ ký bội mù Harn trên
ECC
50
3.3.4.1. Sinh khóa 50
3.3.4.2. Ký mù trên
m
50
3.3.4.3. Chứng minh 50
Chương 4. ỨNG DỤNG VÀ THỰC NGHIỆM 52
4.1. ỨNG DỤNG CHỮ KÝ BỘI TRONG KÝ KẾT HỢP ĐỒNG 52
4.1.1. Bài toán
bảo đảm
tính toàn vẹn thông tin
hợp đồng
(biên bản) 53
4.1.2.
Bảo đảm
tính xác
thực
55
4.1.3.
Chống
chối
bỏ hợp đồng
giao
d
ị
ch
57
4.2 THỬ NGHIỆM
CHƢƠNG
TRÌNH 58
4.2.1. CẤU HÌNH HỆ THỐNG: PHẦN CỨNG, PHẦN MỀM. 58
4.2.1.1. Cấu hình phần
cứng
58
4.2.1.2. Cấu hình phần
mềm
58
4.2.2. CÁC THÀNH PHẦN TRONG
CHƢƠNG
TRÌNH. 58
4.2.1.2. Cặp khóa bí mật công khai của CA 58
4.2.1.2. Cặp khóa bí mật công khai của
những ngƣời
ký 59
4.1.2.3 Sinh tham
số
hệ thống 60
4.2.3.
CHƢƠNG
TRÌNH 61
4.2.4.
HƢỚNG
DẪN SỬ DỤNG
CHƢƠNG
TRÌNH.
62
4.2.4.1. Sinh tham
số hệ
thống 62
4.2.4.2. Tạo chữ ký
bội
62
4.2.4.3.
Kiểm
tra chữ ký
bội
62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
BẢNG CHỮ VIẾT TẮT, KÝ
HI
Ệ
U
gcd(a, b)
Ƣớc số
chung lớn nhất của a và b
lmc(a, b) Bội
số
chung
nhỏ
nhất của a và b
H(.)
Sử dụng
hàm
băm
||
Toán tử nối
(trộn)
2 xâu
a|b
a là
ƣ
ớ
c
số
của b
ID
i
Thông tin nhận dạng thực
thể
cuối U
i
M
Thông điệp
dữ liệu
x
i
Khóa bí mật của thực
thể
cuối U
i
y
i
Khóa công khai của thực
thể
cuối U
i
CA
Cơ
quan chứng
thực
#E
Số
phần tử
của đƣờng
cong Elliptic
ECC
Hệ
mật trên đƣờng
cong Elliptic
DLP
Bài toán Logarith rời rạc
ECDSA Thuật toán ký trên
đƣờng
cong Elliptic
ECDLP
Bài toán Logarith rời
rạc trên đƣờng
cong Elliptic
ECDH
Trao đổi
khóa Elliptic Curve Difie - Hellman
sig
k
Thuật toán ký số
ver
k
Thuật toán
kiểm
tra chữ ký số
DANH MỤC HÌNH
Ả
NH
Hình 1.1 Các chức
năng
của
hệ thống
CA
14
Hình 1.2
Quy trình
ký
điện tử
15
Hình 1.3 Quy trình
kiểm
tra chữ
số
ký
s
ố
16
Hình 3.1 Phép
cộng hai điểm
P + Q =
R
31
Hình 3.2 Phép
cộng
P với chình nó P+P = 2P = R 32
Hình 4.1 Mẫu biên bản thỏa thuận kinh
doanh
53
Hình 4.2 Mẫu phiếu xuất kho 54
Hình 4.3 Cấu trúc cặp khóa bí mật công khai (d, e) của CA 58
Hình 4.4 Khóa bí mật công khai của
những ngƣời ký
59
Hình 4.5 Sinh tham số
hệ
th
ố
ng
60
Hình 4.6 Giao diện tạo tham
số
hệ
th
ố
ng
61
Hình 4.7 Giao diện tạo chữ ký
bội
61
Hình 4.8 Giao diện
kiểm
tra chữ ký
b
ộ
i 62
1
LỜI MỞ
Đ
Ầ
U
Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tài liệu. Các hệ
mã hóa cùng với
hàm băm mật
mã học một chiều chính là những công cụ chính trong
việc tạo ra chữ ký
số điện
tử.
Hiện nay, khi mà Chính phủ
điện
tử và
Thƣơng
mại
điện
tử
đã trở thành
xu
hƣớng
tất yếu của các quốc gia trên thế giới ,
trong đó
có Việt Nam, thì chữ ký số không thể
thiếu
đƣợc
và ngày càng trở nên quan trọng. Các mô hình ứng dụng chữ ký số cho
phép
đáp ứng tốt các yêu cầu về chứng thực nguồn gốc hay hiệu lực của
thông
tin
đƣợc
tạo ra bởi những thực thể có
tính
độc lập.
Nhƣng trong trƣờng
hợp
thông
t
i
n
đƣợc
tạo ra từ các thành viên hay bộ phận của một tổ chức thì nguồn gốc hay hiệu lực
thông tin ở cấp độ thành viên hay bộ phận lại
không đƣợc
chứng thực, trong khi, các
yêu cầu chứng thực đó lại ngày càng trở nên thực tế và cần
thiết.
Tr
ƣ
ớ
c
những
cơ
sở đó,
việc ra
đời
các mô hình chữ ký bội là một tất yếu.
Trong tƣơng
lai,
Chính
phủ
điện
tử và
Thƣơng
mại điện
tử cùng với hạ tầng công
nghệ thông tin và truyền thông phát triển mạnh mẽ
hơn
thì
nhu
cầu ứng dụng chữ ký
bội trong các dịch vụ chứng thực
điện
tử
sẽ
càng cần
thiết
hơn.
Trong khoá luận này, em
tập trung vào sơ đồ
chữ ký bội RSA , chữ ký bội
trên
đƣ
ờ
ng
cong Elliptic và ứng dụng
của chúng, sau đó
là
phần
thử
nghiệm
ch
ƣ
ơng
trình.
Cuối cùng
là phần kết luận và tài liệu tham khảo.
Mặc
dù đã
cố gắng hết sức,
nhƣng
vẫn không sao tránh khỏi sai sót, vì vậy rất mong
đƣợc
sự góp ý phê bình.
2
Chương 1. CÁC KHÁI NIỆM CƠ
B
Ả
N
1.1.
KHÁI NIỆM TRONG SỐ
H
ỌC
1.1.1. Ƣớc
chung lớn nhất và
bội
chung
nhỏ
nhất
1.1.1.1. Khái niệm
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. Ta nói b là ước của a và a là bội của b.
Số nguyên d
đƣợc
gọi là ước chung của các số nguyên a
1
, a
2
,
…,
a
n
, nếu nó là ước
của tất cả các
số
đó.
Số nguyên m
đƣợc
gọi là bội chung của các số nguyên a
1
, a
2
,
…,
a
n
, nếu nó là bội
của tất cả các
số
đó.
Một
ƣ
ớ
c
chung d >0 của các số nguyên a
1
, a
2
,
…,
a
n
,
trong đó
mọi
ƣ
ớ
c
chung của
a
1
, a
2
,
…,
a
n
đều
là
ƣ
ớ
c
của d, thì d
đƣợc
gọi là ước chung lớn nhất của a
1
, a
2
,
…,
a
n
.
Ký hiệu d = gcd(a
1
, a
2
,
…,
a
n
) hay d = UCLN(a
1
, a
2
,
…,
a
n
).
Nếu gcd(a
1
, a
2
,
…,
a
n
) = 1, thì a
1
, a
2
,
…,
a
n
đƣợc
gọi là nguyên tố cùng nhau.
Một bội chung m >0 của các
số
nguyên a
1
, a
2
,
…,
a
n
,
trong đó mọi
bội chung của
a
1
, a
2
,
…,
a
n
đều
là bội của m, thì m
đƣợc
gọi là bội chung nhỏ nhất của a
1
, a
2
,
…,
a
n
.
Ký hiệu m = lcm(a
1
, a
2
,
…,
a
n
) hay m = BCNN(a
1
, a
2
,
…,
a
n
).
Ví dụ:
Cho a = 12, b = 15, gcd(12,15) = 3, lcm(12,15) = 60.
Hai
số
8 và 13 là nguyên tố cùng nhau, vì gcd(8,13) = 1.
1.1.1.2. Tính chất
1. d = gcd(a
1
, a
2
,
…,
a
n
) tồn tại x
1
, x
2
,
…,
x
n
sao cho: d = a
1
x
1
+ a
2
x
2
+…+ a
n
x
n
a
1
, a
2
,
…,
a
n
nguyên t
ố
cùng
nhau
⇔
t
ồ
n
t
ạ
i x
1
, x
2
,
…,
x
n
sao cho:
1 = a
1
x
1
+ a
2
x
2
+…+ a
n
x
n
2. d = gcd(a
1
, a
2
,
…,
a
n
)
⇔
gcd(a
1
/d,
a
2
/d,
…,
a
n
/d) = 1.
3. m = lcm(a
1
, a
2
,
…,
a
n
)
⇔
gcd(m/a
1
, m/ a
2
,
…,
m/a
n
)
= 1.
4. gcd(m a
1
, m a
2
,
…,
m a
n
) = m* gcd(a
1
, a
2
,
…,
a
n
) (v
ớ
i m
≠
0
).
5. Nếu gcd(a, b) = 1 thì lcm(a, b) = a * b.
6. Nếu b>0, a = bq + r thì gcd(a,b) = gcd(b, r).
3
1.1.2. Quan
hệ đồng dƣ
1.1.2.1. Khái niệm
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 chia a và b cho m, ta
nhận đƣợc
cùng một
số
dƣ
.
Ký hiệu: a b (mod m)
Ví dụ:
17 5 (
mod
3) vì
chia
17 và 5
cho
3,
đƣợc
cùng
số dƣ
là 2.
1.1.2.2. Tính chất
1/. Quan
hệ “đồng dƣ”
là
quan hệ tƣơng đƣơng trong
Z
:
Với mọi
số nguyên dƣơng m ta
có:
a (mod m) với mọi a ; (tính chất phản xạ)
a (mod m) thì b
(mod
m);
(tính chát đối
xứng)
a (mod m) và b (mod m) thì a (mod m); (tính chất bắc cầu)
2/.
Tổng
hay
hiệu các “đồng
dƣ
”:
(a+b) (mod n) [(a mod n) + (b mod n)] (mod n)
(a- b) (mod n) [(a mod n) - (b mod n)] (mod n)
Tổng quát:
Có thể cộng hoặc trừ từng vế
nhiều đồng dƣ theo cùng một
modula m,
ta đƣợc
m
ộ
t
đổng dƣ thức
theo cùng modulo m, tức là:
N
ế
u a
i
≡
b
i
(mod m) , i = 1 k, thì
∑
=
∑
(mod m) v
ớ
i t
i
= .
3/.
Tích
các “đổng
dƣ
”:
(a* b) (mod n) [(a mod n) * (b mod n)] (mod n)
Tổng quát:
Có thể nhân từng về
nhiều đồng dƣ thức
theo cùng một modula m,
ta đƣợc một
đồng
dƣ thức
theo cùng modulo m, tức là:
N
ế
u a
i
b
i
(mod m) v
ới i
=
1…k,
th
ì
ta
có:
∏
=
∏
(mod m)
4
1.1.3.
Số
nguyên t
ố
1.1.3.1. Khái niệm
Số
nguyên
tố
là
số
tự nhiên
lớn hơn
1 và chỉ
có hai
ƣ
ớ
c
là 1 và chính nó.
Ví d
ụ
:
1.1.3.2. Định lý
B
ả
n
g 1.1
1
0
s
ố
n
gu
yê
n t ố l ớn đã
đ
ƣ
ợ
c
t ì m t
h
ấ
y
1/. Định lý:
về số nguyên dƣơng >
1
Mọi
số nguyên dƣơng
n
>
1
đều
có
thể
biểu
diễn đƣợc
duy nhất
dƣới
dạng:
n = = = ,
trong
đ
ó:
k, n
i
( i
=
1, 2,
….,
k) là
cá số
tự nhiên, P
1
là các
số
nguyên tố,
từng
đ
ô
i
một
khác nhau.
2/. Định lý Mersenne.
Cho p = 2
k
– 1, nếu p là
số
nguyên tố, thì k phải là
số
nguyên tố.
Chứng minh
Bằng phản chứng, giả sử k không là
số
nguyên tố. Khi
đó
k
= a.b
với 1 < a,b < k.
Nhƣ
vậy: p = 2
k
- 1 = 2
ab
– 1 = (2
a
)
b
– 1 = (2
a
– 1).E
(Trong đó
E là
một
biểu thức nguyên – áp dụng công thức nhị thức Niu-tơn).
Điều này mâu thuẫn giả thiết p là nguyên tố. Vậy giả sử sai, hay k là
số
nguyên
tố.
3/. 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ì
( )
Ví dụ:
Tập các
số
nguyên không âm
nhỏ hơn
7 là Z
7
= {0, 1, 2, 3, 4, 5, 6, 7}.
Do 7 là số nguyên tố, nên Tập các số
nguyên dƣơng nhỏ hơn
7 và nguyên tố cùng
nhau v
ớ
i 7 là Z
7
*
=
{1, 2, 3, 4, 5, 6, 7}. Khi
đó
|Z| =
( )
= p-1 = 8
–
1 = 7.
Định lý hàm Euler:
N
ế
u n là tích c
ủ
a hai s
ố
nguyên t
ố
n = p.q, thì (n) =
( ) ( )
= (p
–
1).(q -1).
1.1. KHÁI NI
Ệ
M TRO
NG ĐẠ
I S
Ố
1.2.1. Nhóm
1.2.1.1. Khái niệm
Nhóm là một bộ (G,*),
trong đó
G , * là phép toán hai ngôi trên G thỏa mãn ba
tính chất sau:
- Phép toán có tính kết hợp (x*y)*z = x * (y*z) với mọi x, y, z G.
- Có phần tử trung lập e G: x*e = e*x = x với mọi x G.
- Với mọi x G, có phần tử nghịch
đảo
x’ G: x*x’ =x’ * x
=
e.
Cấp của nhóm G
đƣợc
hiểu là số phần tử của nhóm, kỹ hiệu là |
G|. Cấp của nhóm có thể là nếu G có vô hạn phần tử.
Nhóm Abel là nhóm (G, *),
trong đó phép toán hai ngôi
*
có tính giao
hoán.
Tính chất: Nếu a * b = a * c, thì b = c.
N
ế
u a * c = b * c, thì a = b.
Ví dụ:
- Tập hợp các số nguyên Z cùng với phép
cộng
(+)
thông thƣờng
là nhóm giao
hoán, có phần tử
đơn
vị là số 0. Gọi là nhóm cộng các
số
nguyên.
- Tập Q
*
các số hữu tỷ khác 0 (hay tập R
*
các số thực khác 0), cùng với phép nhân
(*)
thông thƣờng
là nhóm giao hoán. Gọi là nhóm nhân các
số
hữu tỷ
(số
thực) khác 0.
-
Tập các vectơ trong không gian
với phép toán
cộng vectơ
là
nhóm giao
hoán.
Z
n
1.2.1.2. Nhóm Cyclic
Nhóm (G, *)
đƣợc
gọi là Nhóm Cyclic
nếu nó đƣợc
sinh ra bởi một trong các phần
tử của nó.
Tức là có phần tử g G mà với mỗi a G,
đều
tồn tại
số
n N để
g
n
= g
*
g
* … *
g =
a. (Chú ý
g
*
g
*
…
*
g
là g * g với n lần).
Khi
đó
g
đƣợc
gọi là phần tử sinh hay phần tử nguyên thủy của nhóm G. Nói cách
khác: G
đƣợc
gọi là Nhóm Cyclic nếu tồn tại g G sao cho mọi phần tử trong G
đều
là
một lũy thừa nguyên
nào đó
của g.
Nhóm (Z
+
, +)
gồm
các
số nguyên dƣơng
là Cyclic với phàn tử sinh g = 1.
Cho (G, *) là Nhóm Cyclic với phần tử sinh g và phần tử trung lập e.
Nếu tồn tại số tự nhiên nhỏ nhất n mà g
n
= e, thì G sẽ chỉ gồm có n phần tử
khác nhau: e, g, g
2
, g
3
,…,
g
n-1
.
Khi
đó
G
đƣợc
gọi là nhóm Cyclic hữu hạn cấp n.
Nếu không tồn tại
số
tự nhiên n
để
g
n
= e, thì G có cấp .
1.2.1.3. Nhóm(Z
n
*
, phép nhân mod n)
Kí hiệu Z
n
=
{0, 1, 2,
…
, n-1} là tập các số nguyên không âm < n.
Z
n
và phép công (+) lập thành nhóm Cyclic có phần tử sinh là 1, phần tử trung lập
e = 0. (Z
n
, +) gọi là nhóm
cộng, đó
là
hữu
hạn có cấp n.
Kí hiệu Z
n
*
= {x Z
n
, x là
số
nguyên
tố
cùng nhau với n}. Tức là x phải 0.
*
Z
n
đƣợ
c
g
ọ
i là Tập thặng dư thu gọn theo mod n, có
s
ố
ph
ầ
n t
ử
(n).
*
với phép nhân mod n lập thành một nhóm (nhóm nhân), phần tử trung lập e = 1.
l
ẻ
.
Tổng
quát (Z
n
*
, phép nhân mod n) không phả nhóm Cyclic.
Nhóm nhân Z
n
*
là Cyclic chỉ khi n có dạng: 2, 4, p
k
, hay 2p
k
với p là số nguyên tố
* Định lý Lagrange:
Nếu G là nhóm cấp n và G, thì Cấp của là ước của n.
* Hệ quả: Giả sử Z
n
*
có Cấp m, thì m là ước của (n).
* Định lý:
Nếu p là số nguyên tố thì Z
n
*
là nhóm Cyclic. Nếu b Z
n
*
thì
( )
(mod n).
Nếu p là số nguyên tố thì ( ) = p – 1. Do đó với b Z
p
*
(tức b guyên tố với p),
thì
( )
(mod n), hay b
p
–
1
(mod n).
1.2.1.4. Phần tử nghịch đảo đối với phép nhân
* Định nghĩa
Cho a Z
n
, nếu tồn tại b Z
n
sao cho a b 1(mod n), ta nói b là phần tử nghịch
đảo của a trong Z
n
và kí hiệu a
-1
Một phần tử có phần nghịch
đảo,
gọi là khả nghịch.
* Định lý:
UCLN(a,n) = 1
⇔
Ph
ầ
n t
ử
a Z
n
có ph
ầ
n t
ử
ngh
ịch đả
o.
Chứng minh
Nếu a.a
-1
1(mod n) thì a.a
-1
= 1 + kn a.a
-1
– kn = 1 (a,n) = 1.
Nếu (a,n) = 1, ta có a.a
-1
+ kn = 1 → a.a
-1
= 1 + kn, do
đó
a.a
-1
1(mod n).
* Hệ quả: Mọi phần tử trong Z
n
*
đều
có phần tử nghịch đảo.
1.2.2. Vành
Vành là một tập R với toán tử + và . với
các điều
kiện sau:
(R, +) là một nhóm Abel
a.(b.c) = (a.b).c với mọi a, b, c R.
a.(b+c) = a.b + a.c và (a+b).c = a.c + b.c với mọi a, b, c R.
Vành
tuyến
tính
F là một vành.
Một đa thức
bậc n trên F có dạng:
( ) ∑
= a
0
+ a
1
x
+
…
+
a
n
x
n
v
ớ
i n là
s
ố nguyên dƣơng,
c
ác
h
ệ
s
ố
a
i
F (0 ).
Cho
2
đa thứ
c
( )
∑
và g(x) =
∑
Ta
đ
ị
nh
nghĩa
t
ổ
ng
c
ủ
a
( )
và g(x) là
( ) ( )
∑
( )
Cho
2
đa thứ
c
( ) ∑
và g(x) =
∑
Ta định nghĩa
tích c
ủ
a
( )
và g(x) là
( ) ( )
∑
( )
v
ớ
i
c
k
=
∑
(0 )
Vành đƣợ
c
t
ạ
o thành b
ở
i t
ấ
t c
ả
các đa thứ
c
trên F v
ớ
i tóa t
ử
thông
t
h
ƣ
ờ
ng
là c
ộ
ng và
nhân đƣợc
gọi là
vành đa thức
trên F và ký hiệu là F[x].
Định lý (Thuật toán chia cho F[x])
Giả sử
( )
và
( )
,
-
có bậc
nguyên
dƣ
ơng
,
tồn
tại duy
nhất đa thức
q(x),
r(x)
,
-
thỏa mãn
( ) ( ) ( ) ( )
với bậc của
( )
nhỏ hơn bậc
c
ủ
a
(
)
Nếu
( )
là
đa thức
0 thì
( )
đƣợc
gọi là
ƣ
ớ
c
của
( )
. Đa
thức bất
đ
ị
nh
(
)
trong F[x] là tối giản
nếu nó không
có
ƣ
ớ
c
bậc
thấp
hơn
( )
trong F[x].a F là nghiệm
của
( )
,
-
nếu
( )
= 0.
Hệ quả
Một phần tử a là nghiệm
của đa
thức
( )
,
- khi và chỉ khi là
ƣ
ớ
c
của ( ) trong
,
-
Chứng minh
Vì là nghiệm nên ( ) = 0. Vì
(
)
( ) ( )
( ) nên bậc
của ( ) nhỏ hơn
1,
tức
là
( )
. Vì
vậy,
( )
.
Ngƣợc
lại, nếu
( )
(
) ( )
( ) thì ( ) = 0.
Hệ quả
M
ột đa thứ
c
khác không
( )
,
-
b
ậ
c có
nhi
ề
u
nh
ấ
t
nghi
ệ
m
trong
1.2.3.
Trƣờ
ng
Trƣờ
ng là m
ộ
t vành v
ớ
i ph
ầ
n t
ử
đơn
vị
sao cho
* |
+
là m
ộ
t
nhóm nhân.
Định lý
Vành là
một trƣờng
khi và chỉ khi là
số
nguyên tố
Chứng minh
V
ớ
i , ta có là
s
ố
nguyên t
ố
⇔ |
t
ứ
c là
|
ho
ặ
c
|
N
ế
u là
m
ột trƣờ
ng
thì t
ạ
o thành m
ộ
t nhóm nhân. N
ế
u thì
Điề
u
này
nghĩa
là
và t
ồ
n t
ạ
i
. Do
đó
nế
u
|
và thì
|
( )
V
ậ
y là
s
ố
nguyên t
ố
.
Ngƣợc
lại, giả sử là số nguyên tố. Để chỉ ra rằng là một nhóm nhân ta chỉ
c
ầ
n
chỉ ra rằng với mọi sẽ luôn tồn tại nghịch đảo . Với và ,
n
ế
u
thì
⇒
Vì
| ( ) ⇒ |
ho
ặ
c
|
và t
ứ
c là
. Điề
u này suy ra
* |
+
trong đó
v
ớ
i vì luôn t
ồ
n t
ạ
i ph
ầ
n t
ử
1
trong .
V
ậ
y m
ỗ
i luôn có ph
ầ
n t
ử
ngh
ịch đả
o.
Định nghĩa
là
một trƣờng.
Một tập con của
cũng
là
một trƣờng
với các toán t
ử
đƣợc
gọi là
trƣờng
con của . Hay
là
một trƣờng
mở rộng của . Nếuthì
đƣợc
gọi
là
một trƣờng
con hợp lệ của .
Trƣờng
là tối giản
nếu không có trƣờng
con hợp lệ
nào.
Với
trƣờng
bất kỳ, giao của tất cả
các trƣờng
con hợp lệ là
trƣờng
tối giản.
Trƣờng
đƣợc
gọi là có đặc số 0 nếu
nghĩa
là chứa
nhƣ một
trƣ
ờ
ng
con.
Trƣờng
đƣợc
gọi là
có đặc
số p nếu .
Trƣờng
hữu
hạn
là
trƣờng
chứa hữu hạn các phần tử. mọi
trƣờng
hữu hạn có một số
nguyên tố là đặc số của
trƣờng. Một
tr
ƣ
ờ
ng
có đặc số thì với mọi
⏞
Định nghĩa
Trƣờ
ng v
ớ
i ph
ầ
n t
ử
đơn
vị
nhân là 1. V
ớ
i th
ỏ
a mãn
⏟
đƣợ
c
g
ọ
i là
đặ
c s
ố
c
ủ
a
(Các
trƣờ
ng
h
ữ
a t
ỷ
Q, s
ố
th
ự
c R,
s
ố
ph
ức C
có đặ
c s
ố
là 0)
Với là
số
nguyên
tố
thì GF(p
n
)
có đặc số
p.
Nếu
H là
trƣờng
con
của
K
thì
H và K
có cùng đặc
số.
F là
trƣờ
ng
m
ở
r
ộ
ng
c
ủa trƣờ
ng
K. Ký hi
ệ
u F = K(
)
n
ếu
F là
trƣờ
ng
m
ở
r
ộ
ng nh
ỏ
nh
ấ
t c
ủ
a K ch
ứ
a . N
ếu F là
trƣờ
ng
h
ữ
u h
ạn đặ
c s
ố
p thì nhóm nhân F
*
=F\{0} là nhóm
cyclic và F = Z
p
( ) với là phần tử sinh của nhóm F
*
và
đƣợc
gọi là phần tử nguyên
thủy của F.
Với 2 toán tử nhị nguyên * và trên các tập A và B, một ánh xạ : A → B nếu với
m
ọ
i ta có:
( ) ( ) (
)
Gi
ả
s
ử
A và B là 2 nhóm (ho
ặc 2
trƣờ
ng),
ta g
ọ
i là
m
ột đẳ
ng c
ấu
A
đế
n
B
nếu
đảm
bảo các tính chất của toán tử nhóm của A.
Trƣờng
hữu hạn
Trƣờng
hữu hạn là
trƣờng
có hữu hạn các phần tử ký hiệu là hoặc GF
(q)
với q là
số
các phần tử.
Định lý
F là
trƣờng
mở rộng bậc n
trên trƣờng
hữu hạn K. Nếu K có q phần tử thì F có q
n
phần tử.
Chứng minh
Giả sử { } là cơ sở của F
nhƣ
là
một
không gian vector trên K. Mọi
s
ẽ
có d
ạ
ng
trong
đó
( )
Vì m
ố
i c
i
có th
ể
là
m
ộ
t
trong q ph
ầ
n t
ử
c
ủ
a K nên
s
ố
các
t
ổ
h
ợ
p tuy
ế
n tính là
q
n
.
Định lý
Nếu F là
một trƣờng
hữu
hạn có đặc
số p thì F có p
n
phần tử với n là
nguyên
dƣ
ơng.
Vì vậy, mọi
trƣờng
hữu hạn là một mở
rộng của trƣờng đẳng
cấu Z
p
với
p
là
đặc
số
của F. Định lý
Trƣờng
hữu hạn là
một trƣờng
mở rộng của Z
p
bậc n và mọi phần tử của
là một
nghiệm của đa thức
trên Z
p
.
Chứng minh
Đặc số của là p. Tập hợp F* = F \ {0} tạo thành nhóm nhân bậc p
n
– 1. Với
, bậc của trong nhóm chia hết cho bậc của F*, p
n
– 1. Vì vậy, với mọi ,
chúng ta có = 1 hay . Vì có nhiều p
n
nghiệm, gồm tất cả các
nghiệm
của trên Z
p
.
Ví dụ
Trƣờng
F
2
, chứa F
2
(hoặc Z
2
). Nếu viết toán tử cộng trong F
2
nhƣ phép
cộng vector
và vi
ế
t phép nhân k và
( )
là
m
ột tích
vô
hƣớ
ng
c
ủ
a k F
2
và v F
2
.
Khi đó
đƣợ
c
xem là không gian vector trên F
2
v
ớ
i chi
ề
u r. Ký hi
ệ
u d là chi
ề
u c
ủ
a không gian
vector này. Có thể thực hiện ánh xạ 1 – 1 giữa các phần tử trong không gian vector d
chiều và các d-tuple của các phần tử trong F
2
. Vì vậy, có 2
d
phần tử trong không gian
vector này. Vì d = r, là không gian vector r chiều.
là mở rộng của F
q
. 2 phần tử là liên hợp trên F
q
nếu và là các
nghiệm của cùng
một đa thức
tối giản bậc m trên F
q
. là các liên hợp
của với F
q
.
là m
ộ
t m
ở
r
ộ
ng c
ủ
a F
q
.
M
ột
cơ sở
c
ủ
a (không gian vector trên F
q
) c
ủ
a
{ }gồm và các liên hợp của nó với F
q
,
đƣợc
gọi là cơ sở
trực giao của trên F
q
. Mọi
trƣờng
mở rộng bậc hữu hạn của
một
tr
ƣ
ờ
ng
hữu hạn có
một cơ sở
trực giao.
Không gian
chi
ế
u
Xét L = K
n+1
\{0} với K là
một trƣờng.
Với A = (a
0
, a
1
,
…,
a
n
), B = {b
0
, b
1
,
…,
b
n
}
L,
đ
ị
nh
nghĩa một
quan hệ A ~ B gồm A, B và gốc O
=
(0, 0,…,0) là cộng
tuyến,
nghĩa
là tồn tại thỏa mãn: (i
=
0, 1,
…,
n).
Quan hệ ~ là quan hệ
tƣơng đƣơng
và
đ
ị
nh
nghĩa một
phân hoạch của L.
Tập
thƣ
ơng
số
là không gian chiếu ký hiệu là
P
n
(K).
Mặt phẳng chiếu là tập các lớp
tƣơng đƣơng
của bộ ba (X, Y, Z) với
( ) ( )( )
. M
ỗ
i l
ớp
tƣơng đƣơng
(X,
Y,
Z)
đƣợ
c
g
ọ
i là
m
ột
điể
m
chi
ế
u trên m
ặ
t ph
ẳ
ng chi
ế
u. N
ế
u
m
ột
điể
m chi
ế
u có Z 0, thì (x, y, 1) là m
ộ
t th
ể
hi
ệ
n
của
lớp tƣơng đƣơng
với x = , y = . Mặt phẳng chiếu có thể
đƣợc
đ
ị
nh
nghĩa
là
tập
tất
cả
các điểm
(x, y) của mặt phẳng Affine
cộng
với
các điểm
Z = 0.
1.2.4. Không gian vector
K là
một trƣờng
và V là một nhóm
cộng
Abel. V
đƣợc
gọi là không gian vector trên
trƣờng
K nếu một toán tử K x V → V
đƣợc
đ
ị
nh
nghĩa thỏa mãn các điều
kiện
sau:
( )
;
( )
( ) ( )
;
Các ph
ầ
n t
ử
c
ủa
V
đƣợ
c
g
ọ
i là các vector và các ph
ầ
n t
ử
c
ủa
K
đƣợ
c
g
ọ
i là các vô
hƣớng.
V là
một không gian vector trên trƣờng
K và các v
1
,
…,
v
m
V. Vector trong V
có dạng với c
i
K (i
=
1,
…,
m) là
một
tổ hợp tuyến tính của
v
1
,
…,
v
m
. Tập hợp tất cả các tổ hợp tuyến tính gọi là span của v
1
,
…,v
m
và ký hiệu là
span(v
1
,
…,
v
m
). v
1
,
…,
v
m
đƣợc
gọi là span nếu của V nếu V = span(v
1
,
…,
v
m
).
V là
không gian vector trên trƣờng
K. Các vector v
1
,
…,
v
m
V
đƣợc
gọi là
độc lập
tuyến
tính trên K
nếu không có các
vô
hƣớng
c
1
,
…,
c
m
K thỏa mãn:
Tập S = {u
1
, u
2
,…,u
n
} của các vector tạo thành cơ sở của V khi và chỉ khi
u
1
,
u
2
,…,u
n
là
độc
lập tuyến tính là span của V. Nếu S là
một
cơ sở của V thì mọi phần
tử của V
đƣợc
biểu diễn duy
nhất dƣới
dạng tổ hợp tuyến tính của các phần tử của S.
Nếu
không gian vector
V có cơ sở là một số hữu hạn các vector thì bất kỳ cơ sở nào
của V
cũng sẽ
có cùng số phần tử. Khi
đó nó chính
là
chiều
của V trên K.
Nếu F là
một trƣờng
mở rộng của
trƣờng
K thì F là một không gian vector trên K.
Chiều của
F
trên
K
đƣợc
gọi là bậc mở
rộng
của F trên K.
1.3.
KHÁI NIỆM TRONG MẬT MÃ
1.3.1.
Một số
khái ni
ệ
m
1.3.1.1. Khái niệm Mã hóa dữ liệu
Để
đảm bảo
An
toàn thông
tin
(ATTT)
lƣu
trữ trong máy tính (giữ gìn thông tin
cố định) hay đảm bảo ATTT trên
đƣờng
truyền tin (trên mạng máy tính),
ngƣời
ta
phải “che giấu” các
thông
tin này. “Mã hóa”
thông
tin là một là một trong
những
phƣ
ơn
g
pháp đảm
bảo ATTT.
Hệ mã hóa là một
bộ năm
(P, C, K, E, D), thỏa mãn:
P là một tập hữu hạn các bản rõ.
C là một tập hữu hạn các bản mã.
K là tập hữu hạn các khóa.
E là tập hữu hạn các quy tắc mã hóa.
D là tập hữu hạn các quy tắc giải mã.
Đối với mỗi k K có một quy tắc mã hóa e
k
E, e
k
: P → C và một quy tắc giải
mã tƣơng
ứng d
k
D, d
k
: C → P thỏa mãn: d
k
(e
k
(x)) = x, x P.
1.3.1.2. Lược đồ chữ ký số
Lƣợc đồ
chữ ký
số
là
bộ năm
(M, S, K, A, V), thỏa
mãn:
M là một tập hữu
hạn các thông điệp
dữ liệu.
S là một tập hữu hạn các chữ ký.
K là tập hữu hạn các khóa bí mật.
A là tập hữu hạn các thuật toán ký.
V là tập hữu hạn các thuật toán xác minh.
Đối với mỗi k K có một thuật toán ký sig
k
A, sig
k
: M → S và một thuật toán
xác
minh tƣơng
ứng ver
k
V, ver
k
: M S →
{
đúng,
sai}
thỏa mãn
điều kiện
sau với mỗi m M và s S:
( )
{
(
)
( )
1.3.1.3. Hàm băm
Hàm
băm (hash function)
là
một trong
hai kĩ
thuật
chủ yếu phục vụ quá trình xác
thực. Chức
năng
chính của nó là thực hiện ánh xạ các bản tin có chiều dài khác nhau
thành một
miếng băm có
kích
thƣớc
cố định.
Miếng băm mới tạo
ra
thƣờng có
kích
thƣ
ớ
c
nhỏ hơn
rất nhiều so với
bản tin ban
đầu.
Một giá trị
miếng băm
h
đƣợc
sinh ra bởi
hàm băm
H có
d
ạ
ng
:
h
=
H(M)
trong đó:
M là bản tin có
chiều
dài tùy ý, h là giá trị
băm chiều
dài
cố
định. Các yêu
cầu đối
với
hàm
băm:
-
Hàm băm
H
có thể
áp dụng cho các khối dữ liệu với kích
thƣớc
tùy ý.
- Đầu ra
của hàm băm
H
có độ dài
xác định.
- Việc xác định giá trị H(x) đủ
đơn giản
để việc cài đặt là khả thi đối với cả
phần mềm và phần cứng.
- Hàm H là hàm một chiều,
nghĩa
là x
cho trƣớc
thì H(x) xác
đ
ị
nh
nhƣng
với h cho
trƣớc
thì việc tính x cực kỳ
khó
khăn.
- Với hai giá trị
đầu
vào thì H(x)
≠
H(
y
)
Hiện nay, một số kỹ
thuật
băm
đƣợc
sử dụng phổ biến
nhƣ
:
SHA-1, SHA-256,
SHA-384, SHA-512; MD-4, MD-5…Tuy
nhiên chƣơng
trình thử nghiệm sẽ tập trung
nghiên
cứu
và cài
đặt thuật toán băm
SH
A.
1.3.2.
Một số
thuật ngữ liên quan
Chữ ký số (Digital signature) là một dạng dữ liệu số
đƣợc
sinh ra từ
một lƣợc đồ
chữ ký số, nhằm chứng thực nguồn gốc hay hiệu lực của
thông
điệp dữ liệu. Từ
đây
cho
đến hết nội dung của tài liệu, khi chỉ nhắc tới “chữ ký”
ta sẽ hiểu đó
là “chữ ký
số
”.
Chữ ký đơn là một dạng chữ ký số do một thực thể tạo ra (có thể là
một
đ
ố
i
tƣ
ợ
ng,
hoặc đại diện cho
một nhóm
đối
tƣợng)
nhằm chứng thực nguồn gốc hay hiệu lực của
thông điệp
dữ liệu của thực
thể
đó.
Chữ ký bội
đƣợc
tạo nên từ nhiều chữ ký đơn
cũng nhằm
chứng thực nguồn gốc
hay hiệu lực
của thông điệp
dữ liệu.
Cơ quan chứng thực – CA (Certification Authority) là một thực thể cung cấp chứng
chỉ số.
H
ì
n
h 1.1
C
ác chức
năng
c
ủa hệ
th
ố
n
g
C
A
1.4.
GIỚI THIỆU VỀ CHỮ KÝ
S
Ố
1.4.1. Quy trình tạo và
kiểm
tra
một
chữ ký s
ố
1.4.1.1. Quy trình tạo ra một chữ ký số:
Tính toán giá tr
ị
băm
:
H
ì
n
h 1.2
Q
u
y
t
r
ì
nh
ký điện tử
Bƣớc đầu
tiên của quá trình tạo chữ ký là tạo giá trị
băm
của
thông
điệp
dữ liệu
cần gửi. Các
hàm băm
có
thể
sử dụng là MD2, MD4, MD5, SHA-1, SHA-256…
K
ế
t quả
thu đƣợc
là một tóm
tắt thông
điệp dữ liệu (message digest) có chiều
dài cố định, nhỏ
hơn
rất nhiều
thông
điệp dữ liệu
ban đầu.
Theo tính chất của
hàm
băm, xác
suất để
hai thông
điệp
dữ liệu khác nhau có cùng một giá trị
băm
là
rất nhỏ và có thể bỏ qua. Vì vậy, nếu giá trị
băm
của hai
thông
điệp dữ liệu
trùng nhau thì
thông điệp
dữ liệu
ban đầu cũng trùng
nhau.
Tính toán chữ ký
s
ố
:
Kết quả
băm thu đƣợc (message digest) đƣợc
ký bằng khóa bí mật (private key)
của bên nhận. Kết quả
thu đƣợc
này chính là chữ ký số. Các thuật toán tạo khóa
có thể sử dụng là RSA (dựa trên bài toán số nguyên tố), Elgamal (dựa trên lí
thuyết logic rời rạc), ECDSA (dựa trên bài toán logarit trên EC). Chữ ký này
đƣợc
gắn vào
thông
điệp dữ liệu ban đầu (ký) và truyền đến
ngƣời
gửi trên
môi
trƣ
ờ
ng
mạng.
1.4.1.2. Quy trình kiểm tra một chữ ký
số:
H
ì
n
h 1.3
Q
u
y t
r
ì nh
k
i ểm t ra chữ số ký
s
ố
Tính toán giá trị
băm hiện
thời
Sau khi
nhận đƣợc thông điệp
dữ liệu ban
đầu
(nói
chính
xác là
thông điệp
dữ
liệu mà bên
nhận cho
là
thông điệp
dữ
liệu ban đầu)
và chữ ký gửi kèm, bên nhận
tiến hành tách riêng hai phần. Phần
thông
điệp dữ liệu
ban
đầu trở
thành
đầu
vào của
thuật toán băm
giống với
thuật toán băm
khi
tạo
ra chữ ký số. Giá trị
băm
nhận
đƣợc
gọi là giá trị
băm hiện
thời vì
nó đƣợc
tính từ
thông điệp
dữ liệu
hiện thời.
Tính toán giá trị
băm ban
đầu
Trong bƣớc
thứ hai của quá trình giải mã, chữ ký số
đính kèm đƣợc
giải mã bằng
khóa công
khai
(public
key)
tƣơng
ứng với khóa bí
mật (private
key)
dùng để
tạo
chữ ký ở bên gửi. Kết quả
thu đƣợc
giá trị
băm ban
đầu.
So sánh giá trị
băm hiện
thời với giá trị
băm ban
đầu
Trong bƣớc
này ta tiến hành so sánh giá trị
băm thu đƣợc
từ
bƣớc
1 và
bƣớc
2 của
quá trình xác thực:
• Nếu hai giá trị
băm
này
trùng nhau: quá trình
xác
thực thành công, thông
điệp dữ
liệu đã
đƣợc
ký bằng khóa bí
mật tƣơng
ứng với khóa công khai khi xác minh,
đồng
thời
thông điệp
dữ
liệu cũng không
bị
thay đổi
trong quá trình
truyền
đi.
• Nếu hai giá trị
băm không
trùng: quá trình xác thức thất bại,
có hai trƣờng
hợp mất
an toàn đã
xảy ra:
- Khóa bí mật
của ngƣời
gửi
không đƣợc
sử dụng khi tạo chữ ký.
-
Thông điệp
dữ
liệu đã thay đổi
trong quá trình
truyền
đi.