Trong xu hướng phát triển của thếgiới và Việt Nam hiện nay, mạng Internet đang 
đem đến sựbùng nổthông tin một cách mạnh mẽ. Nó được sửdụng đểtruyền thư điện 
tử, truy cập các website, kết nối các công sở, liên lạc với các khách hàng và sửdụng 
các dịch vụngân hàng, các giao dịch điện tử 
Tiềm năng của mạng Internet là rất lớn. Nhưta đã biết các giao tiếp, trao đổi thông 
tin qua Internet đều sửdụng giao thức TCP/IP. Các gói tin truyền từ điểm nguồn tới 
điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy độan toàn thấp, nó rất dễbị
xâm phạm, theo dõi và giảmạo trên đường truyền. Vấn đềkhông an toàn cho thông tin 
trên đường truyền khiến nhiều người đắn đo trong việc sửdụng mạng Internet cho 
những ứng dụng vềtài chính, giao dịch ngân hàng, hoạt động mua bán và khi truyền 
các thông tin kinh tế, chính trịvv 
Những biện pháp đảm bảo an toàn thông tin đưa ra đều nhằm đáp ứng 3 yêu cầu: 
bảo mật thông tin, xác thực thông tin và toàn vẹn thông tintrên đường truyền. Các 
hệmã hóa thông tin bảo đảm tính bí mật nội dung thông tin, các sơ đồchữký sốbảo 
đảm xác thực thông tin trên đường truyền. 
Tuy nhiên, nhu cầu của con người không chỉdừng lại ởviệc giao dịch giữa các cá 
nhân với nhau, mà còn giao dịch thông qua mạng giữa các nhóm người, các công ty, 
các tổchức khác nhau trên thếgiới. Dựa trên những yêu cầu thực tế đó các nhà khoa 
học đã nghiên cứu và đềxuất ra một kiểu chữký mới, đó chính là chữký nhóm. 
Trong đồán này tôi đã tìm hiểu và nghiên cứu vềchữký nhóm. Đây là một loại 
chữký điện tửcho phép một nhóm người tạo các chữký đại diện cho nhóm, và chỉ
những thành viên trong nhóm mới có thểký vào các thông điệp của nhóm. Người quản 
trịcủa nhóm có trách nhiệm thành lập nhóm và trong trường hợp cần thiết phải biết 
được ai là người ký vào thông điệp. 
Trong quá trình làm đồán tốt nghiệp, em đã nhận được sựhướng dẫn tận tình của 
TS.Lê Phê Đô. Em xin chân thành cảm ơn! Đồng thời, em xin cảm ơn các thày cô giáo 
bộmôn Tin học – trường Đại học Dân lập Hải Phòng đã trang bịcho em những kiến 
thức cơbản trong quá trình học tập tại trường.
              
                                            
                                
            
 
            
                 64 trang
64 trang | 
Chia sẻ: oanh_nt | Lượt xem: 1345 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Đồ án Tìm hiểu chữ kí nhóm và ứng dụng trong giao dịch điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
 1
LỜI NÓI ĐẦU 
Trong xu hướng phát triển của thế giới và Việt Nam hiện nay, mạng Internet đang 
đem đến sự bùng nổ thông tin một cách mạnh mẽ. Nó được sử dụng để truyền thư điện 
tử, truy cập các website, kết nối các công sở, liên lạc với các khách hàng và sử dụng 
các dịch vụ ngân hàng, các giao dịch điện tử… 
Tiềm năng của mạng Internet là rất lớn. Như ta đã biết các giao tiếp, trao đổi thông 
tin qua Internet đều sử dụng giao thức TCP/IP. Các gói tin truyền từ điểm nguồn tới 
điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy độ an toàn thấp, nó rất dễ bị 
xâm phạm, theo dõi và giả mạo trên đường truyền. Vấn đề không an toàn cho thông tin 
trên đường truyền khiến nhiều người đắn đo trong việc sử dụng mạng Internet cho 
những ứng dụng về tài chính, giao dịch ngân hàng, hoạt động mua bán và khi truyền 
các thông tin kinh tế, chính trị vv… 
Những biện pháp đảm bảo an toàn thông tin đưa ra đều nhằm đáp ứng 3 yêu cầu: 
bảo mật thông tin, xác thực thông tin và toàn vẹn thông tin trên đường truyền. Các 
hệ mã hóa thông tin bảo đảm tính bí mật nội dung thông tin, các sơ đồ chữ ký số bảo 
đảm xác thực thông tin trên đường truyền. 
Tuy nhiên, nhu cầu của con người không chỉ dừng lại ở việc giao dịch giữa các cá 
nhân với nhau, mà còn giao dịch thông qua mạng giữa các nhóm người, các công ty, 
các tổ chức khác nhau trên thế giới. Dựa trên những yêu cầu thực tế đó các nhà khoa 
học đã nghiên cứu và đề xuất ra một kiểu chữ ký mới, đó chính là chữ ký nhóm. 
Trong đồ án này tôi đã tìm hiểu và nghiên cứu về chữ ký nhóm. Đây là một loại 
chữ ký điện tử cho phép một nhóm người tạo các chữ ký đại diện cho nhóm, và chỉ 
những thành viên trong nhóm mới có thể ký vào các thông điệp của nhóm. Người quản 
trị của nhóm có trách nhiệm thành lập nhóm và trong trường hợp cần thiết phải biết 
được ai là người ký vào thông điệp. 
Trong quá trình làm đồ án tốt nghiệp, em đã nhận được sự hướng dẫn tận tình của 
TS.Lê Phê Đô. Em xin chân thành cảm ơn! Đồng thời, em xin cảm ơn các thày cô giáo 
bộ môn Tin học – trường Đại học Dân lập Hải Phòng đã trang bị cho em những kiến 
thức cơ bản trong quá trình học tập tại trường. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 2
Chương I 
CÁC KHÁI NIỆM CƠ BẢN 
1.1 Cơ sở toán học 
1.1.1. Ước số - Bội số 
Định nghĩa : Ước số của a và b là c nếu c|a và c|b 
Ước số chung lớn nhất : Là số lớn nhất mà a và b chia hết 
Ký hiệu : c = gcd (a,b) ; (great common divisor) 
Bội số chung nhỏ nhất : d là BCNN của a và b nếu ∀ c mà a|c , b|c → d|c 
Ký hiệu : d = lcm (a,b) ; (least common multiple) 
Tính chất: lcm (a,b) = a.b/gcd(a,b) 
1.1.2. Số nguyên tố 
Định nghĩa : Số nguyên tố là số chỉ chia hết cho 1 và chính nó, ngoài ra không còn 
số nào nó có thể chia hết nữa. Hệ mật thường sử dụng số nguyên tố lớn cỡ 512bits và 
thậm chí còn lớn hơn nữa. 
Hai số m và n gọi là hai số nguyên tố cùng nhau khi ước số chung lớn nhất của 
chúng bằng 1. Chúng ta có thể viết như sau: 
 UCLN(m,n) = 1 
1.1.3. Khái niệm nhóm 
Định nghĩa : Nhóm là bộ đôi (G, ∗ ), trong đó G là tập φ≠ và ∗ là một phép toán 
hai ngôi trong G thỏa mãn ba tiên đề sau 
1. Phép toán nhóm kết hợp 
a * (b * c) = (a * b) * c ∀ a, b, c ∈G 
2. Có một phần tử 0 ∈G được gọi là phần tử đơn vị thỏa mãn 
a * 0 = 0 * a ∀ a ∈G 
3. Với mỗi a ∈G, tồn tại một phần tử a-1 ∈G được gọi là nghịch đảo 
a * a-1 = a-1 * a = 0 
Nhóm được gọi là giao hoán (hay nhóm Abel) nếu 
a * b = b * a ∀ a, b ∈G 
1.1.4. Nhóm hữu hạn 
 Định nghĩa : Nhóm (G, ∗ ) hữu hạn nếu |G| là hữu hạn. Số các phần tử của nhóm G 
được gọi là cấp của nhóm. 
Ví dụ : 
 Tập các số nguyên Z với phép cộng sẽ tạo nên một nhóm. Phần tử đơn vị 
của nhóm này được kí hiệu là 0, phần tử ngược của một số nguyên a là 
số nguyên –a. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 3
 Tập Zn với phép cộng modulo tạo nên một nhóm cấp n. Tập Zn với phép 
toán nhân theo modulo n không phải là một nhóm vì không phải mọi 
phần tử của nhóm đều có nghịch đảo. Tuy nhiên tập Z *n sẽ là một nhóm 
cấp φ (n) với phép toán nhân theo modulo n và có phần tử đơn vị là 1. 
1.1.5. Nhóm con 
 Định nghĩa : Bộ đôi (S, ∗ ) được gọi là nhóm con của (G, ∗ ) nếu: 
 S ⊂ G, phần tử trung gían e ∈ S 
 x, y ∈ S ⇒ x * y ∈ S 
1.1.6. Nhóm Cyclic 
 Định nghĩa : Nhóm G được gọi là nhóm cyclic nếu tồn tại một phần tử α ∈ G sao 
cho với mỗi b ∈G có một số nguyên I sao cho b = αi. Phần tử α như vậy được gọi là 
phần tử sinh của G 
 Nếu G là một nhóm và a ∈ G thì tập tất cả các lũy thừa của a sẽ tạo nên một nhóm 
con cyclic của G. Nhóm này được gọi là nhóm con sinh bởi a và được kí hiệu là a 
1.1.7. Các thuật toán trong Z 
Cho a và b là các số nguyên không âm và nhỏ hơn hoặc bằng n. Cần chú ý rằng số 
các bit trong biểu diễn nhị phân của n là [lgn] + 1 và số này xấp xỉ bằng lg n. Số các 
phép toán bit đối với bốn phép toán cơ bản trên các số là cộng , trừ, nhân và chia sử 
dụng các thuật toán kinh điển được tóm lược trên bảng sau. Các kỹ thuật tinh tế hơn 
đối với các phép toán nhân và chia sẽ có độ phức tạp nhỏ hơn. 
Phép toán Độ phức tạp bit 
Cộng a + b 
 Trừ a – b 
Nhân a * b 
Chia a = qb + r 
0(lg a + lg b) = 0 (lg n) 
0(lg a + lg b) = 0 (lg n) 
0 ( )b) (lg*a) (lg = 0 ( )n)2 (lg 
0 ( )b) (lg*a) (lg = 0 ( )n)2 (lg 
 1.1.8. Thuật toán Euclide : Tính UCLN của 2 số nguyên 
 VÀO : Hai số nguyên không âm a và b với a > b 
 RA : UCLN của a và b 
 (1). while b ≠ 0 do 
 R ← a mod b, a ← b, b ← r 
 (2). Return (a) 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 4
1.1.9. Thuật toán Euclide mở rộng 
 VÀO : Hai số nguyên không âm a và b với a > b 
 RA : d = UCLN (a, b) và các số nguyên x và y thỏa mãn ax + by = d 
 (1) Nếu b = 0 thì đặt d ← a, x ← l, y ← 0 và return (d, x, y) 
 (2) Đặt x2 ← l, x1 ← 0, y2 ← 0, y1 ← l 
 (3) while b > 0 do 
1. q ← [a/b], r ← a – qb, x ← x2 – qx1 , y ← y2 – qy1 
2. a ← b, b ← r, x2 ← x1, x1 ← x, y2 ← y1 , y1 ← y 
 (4) Đặt d ← a, x ← x2, y ← y2 và return (d, x, y) 
1.1.10. Định nghĩa hàm Φ Euler 
Định nghĩa : Với n≥1 chúng ta gọi φ (n) là tập các số nguyên tố cùng nhau với n 
nằm trong khoảng [1,n]. 
Tính chất : 
 Nếu p là số nguyên tố → φ (p) = p-1 
 Nếu p=m.n , gcd(m,n)=1 
→ φ (p)= φ (m).φ (n) 
 Nếu n = kekeee pppp ....321 321 là thừa số nguyên tố của n thì 
→ φ (n) = n ⎟⎟⎠
⎞
⎜⎜⎝
⎛ −⎟⎟⎠
⎞
⎜⎜⎝
⎛ −⎟⎟⎠
⎞
⎜⎜⎝
⎛ −
kppp
11...1111
21
1.1.11. Đồng dư thức 
Định nghĩa : Cho a và b là hai số nguyên tố, a được gọi là đồng dư với b theo 
modulo n, ký hiệu là a ≡ b(mod n) nếu a, b chia cho n có cùng số dư. 
Ví dụ : 24 ≡ 9 mod 5 vì 24 - 9 = 3 * 5 
 -11 ≡ 17 mod 7 vì -11 - 17 = -4 * 7 
Tính chất : 
Đối với a, a1, b, b1, c ∈ Z ta có : 
 a ≡ a (mod n) 
 a ≡ b (mod n) ↔ b ≡ a (mod n) 
 a ≡ b (mod n) , b ≡ c (mod n) → a ≡ c (mod n) 
 a ≡ a1 (mod n) , b ≡ b1 (mod n) 
a+b≡ a1+b1 (mod n) 
a.b ≡ a1.b1 (mod n) 
1.1.12. Số nghịch đảo 
Định nghĩa : Cho a ∈ Zn. Một số nguyên x ∈ Zn gọi là nghịch đảo của a theo mod n 
nếu a.x ≡ 1mod n.. 
Nếu có số x như vậy thì nó là duy nhất và ta nói a là khả nghịch. Ký hiệu là a
-1
. Có 
thể suy ra rằng a khả nghịch theo mod n khi và chỉ khi gcd (a,n)=1. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 5
1.1.13. Nhóm nhân Z*n 
Định nghĩa : Nhóm nhân của Zn ký hiệu là Z*n là tập hợp các phần tử sao cho gcd 
(a,n)=1. Đặc biệt với n là số nguyên tố thì Z*n={ a ∈ Zn | 1≤a≤n-1} 
Định nghĩa : Cho a ∈ Z*n khi đó bậc của a kí hiệu là ord (a) là một số nguyên 
dương t nhỏ nhất sao cho a t ≡ 1(mod n). 
1.1.14. Định nghĩa thặng dư bậc 2 
Định nghĩa : Cho a ∈ Z*n gọi a là thặng dư bậc 2 theo modulo n nếu tồn tại x sao 
cho x2 ≡ a (mod n) . Nếu không tồn tại thì gọi a là bất thặng dư bậc 2. Tập tất cả các 
thặng dư bậc hai modulo n được kí hiệu là nQ , còn tập tất cả các thặng dư không bậc 
hai được kí hiệu là nQ . 
1.1.15. Phần dư China CRT ( Chinese Remainder Theorem) 
Nếu các số nguyên n1, n2, …, nk là nguyên tố cùng nhau từng thì hệ các phương 
trình đồng dư: 
 x ≡ a1 (mod n1) 
 x ≡ a2 (mod n2) 
 ……………… 
 x ≡ ak (mod nk) 
sẽ có nghiệm duy nhất theo modulo n (n = n1, n2, …, nk) 
 x = ∑
=
k
i 1
ai Ni Mi mod n 
 Trong đó Ni = n / ni và Mi = N 1−i mod ni 
 Các tính toán này có thể được thực hiện bởi 0 ( ))2n (lg các phép toán trên bit. 
Ví dụ : Cặp phương trình đồng dư 
 x ≡ 5 (mod 9) 
 x ≡ 19 (mod 23) có nghiệm duy nhất x ≡ 203 (mod 207) 
Tính chất 
 Nếu (n1, n2) = 1 thì cặp phương trình đồng dư 
 x ≡ a (mod n1), x ≡ a (mod n2) 
 có một nghiệm duy nhất x ≡ a (mod n1, n2) 
1.1.16. Độ phức tạp tính toán 
 Lý thuyết thuật toán và các hàm số tính được ra đời từ những năm 30 của thế kỉ 20 
đã đặt nền móng cho việc nghiên cứu các vấn đề “ tính được ”, “ giải được ” trong toán 
học. Tuy nhiên từ các “ tính được ” đến việc tính toán thực tế là một khoảng cách rất 
lớn. Có rất nhiều vấn đề chứng minh là có thể tính được nhưng không tính được trong 
thực tế dù có sự trợ giúp của máy tính. Vào những năm 1960 lý thuyết độ phức tạp 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 6
tính toán được hình thành và phát triển nhanh chóng, cung cấp nhiều hiểu biết sâu sắc 
về bản chất phức tạp của các thuật toán và các bài toán, cả những bài toán thuần túy lý 
thuyết đến những bài toán thường gặp trong thực tế. 
 Độ phức tạp tính toán của một tiến trình tính toán là số ô nhớ được dùng hay số các 
phép toán sơ cấp được thực hiện trong tiến trình tính toán đó. Dữ liệu đầu vào đối với 
một thuật toán thường được biểu diễn qua các từ trong một bảng kí tự nào đó. Độ dài 
của một từ là số kí tự trong từ đó. 
1.1.17. Các thuật toán trong Zn 
 Cho n là một số nguyên dương. Các phần tử của Zn sẽ được biểu thị bởi các số 
nguyên Q21 = {0, 1, 2, … n-1}. 
 Ta thấy rằng, nếu a, b ∈ Zn thì 
 (a + b) mod n = 
 Bởi vậy phép cộng ( và trừ ) theo modulo có thể thực hiện đựợc mà không cần 
phép chia. Phép nhân modulo của a và b có thể được thực hiện bằng cách nhân các số 
nguyên thông thường rồi lấy phần dư của kết quả sau khi chia cho n. Các phần tử 
nghịch đảo trong Zn có thể được tính bằng cách dùng thuật toán Euclide mở rộng được 
mô tả dưới đây: 
1.1.18. Thuật toán ( Tính các nghịch đảo trong Zn ) 
 VÀO : a ∈ Zn 
 RA : a-1 mod n (nếu tồn tại) 
1. Dùng thuật toán Euclide mở rộng để tìm các số nguyên x và y sao 
cho ax + ny = d trong đó d = (a, n) 
2. Nếu d >1 thì a-1 mod n không tồn tại. Ngược lại return (x) 
Phép lũy thừa theo modulo có thể được thực hiện có hiệu quả bằng thuật toán nhân 
và bình phương có lặp. Đây là một thuật toán rất quan trọng trong nhiều thủ tục mật 
mã. Cho biểu diễn nhị phân của a là : 
∑
=
t
i 0
ki2i trong đó mỗi ki ∈ {0, 1} khi đó 
a + b với a + b < n 
a + b – r.n với a + b ≥ n 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 7
 ak = k
t
i
kia 2
0
∏
=
 = ( ) ( ) ( ) tt kkk aaa 222 ...1100 
Thuật toán nhân và bình phương có lặp để lấy lũy thừa trong Z n 
VÀO : a ∈ Zn và số nguyên k, (0 ≤ k < n) có biểu diễn nhị phân : 
 k = i
t
i
ik 2
0
∑
=
 RA : ak mod n 
1. Đặt b ← l. Nếu k = 0 thì return (b) 
2. Đặt A ← a 
3. Nếu k0 = 1 thì đặt b ← a 
4. for i from l to t do 
1. Đặt A ← A2 mod n 
2. Nếu ki = l thì đặt b ← A*b mod n 
5. Return (b). 
Số các phép toán bit đối với phép toán cơ bản trong Zn 
Phép toán Độ phức tạp bit 
Cộng modulo 0(lg n)
Trừ modulo 0(lg n)
Nhân modulo 0 ( )2)(lg n 
Nghịch đảo modulo 0 ( )2)(lg n 
Lũy thừa modulo 0 ( )3)(lg n 
Độ phức tạp bit của các phép toán cơ bản trong Zn 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 8
1.1.19. Hàm một phía - Hàm một phía có cửa sập 
 Một hàm một phía là hàm mà dễ dàng tính toán ra quan hệ một chiều nhưng rất khó 
để tính ngược lại. 
Ví dụ : Biết giả thiết x thì có thể dễ dàng tính ra f(x), nhưng nếu biết f(x) thì rất khó 
tính ra được x. Trong trường hợp này khó có nghĩa là để tính ra được kết quả thì phải 
mất rất nhiều thời gian để tính toán. 
 F(x) được gọi là hàm một phía có cửa sập nếu tính xuôi y = f(x) thì dễ nhưng tính 
ngược x =f 1− (y) thì khó tuy nhiên nếu có “ cửa sập ” thì vấn đề tính ngược trở nên dễ 
dàng. Cửa sập ở đây là một điều kiện nào đó giúp chúng ta dễ dàng tính ngược. 
Ví dụ : 
 y = f(x) = xb mod n tính xuôi thì dễ nhưng tính ngược x = ya mod n thì khó vì phải 
biết a với a * b ≡ 1 ( )))(mod( nφ trong đó φ (n) = (p-1)(q-1). Nhưng nếu biết cửa sập p, 
q thì việc tính n = p * q và tính a trở nên dễ dàng. 
 Hộp thư là một ví dụ về hàm một phía có cửa sập. Bất kỳ ai cũng có thể bỏ thư vào 
thùng. Bỏ thư vào thùng là một hành động công cộng. Mở thùng thư không phải là 
hành động công cộng. Nó là việc khó khăn, bạn sẽ cần đến mỏ hàn để phá hoặc những 
công cụ khác. Hơn nữa nếu bạn có “ cửa sập ” ( Trong trường hợp này là chìa khóa của 
hòm thư ) thì công việc mở hòm thư thật dễ dàng. 
 1.2 Tìm hiểu về mật mã 
Mật mã học là khoa học nghiên cứu sự an toàn, toàn vẹn của dữ liệu, xác nhận sự 
tồn tại và xác nhận tính nguyên bản của thông tin. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 9
Sơ đồ khối một hệ truyền tin mật 
Định nghĩa : Một hệ mật mã là một bộ năm (P, C, K, E, D) thoả mãn các điều kiện 
sau đây: 
+ 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à một tập hữu hạn các khoá. 
+ Với mỗi k ∈ K, có một hàm lập mã e
k 
∈ E 
 e
k
: P → C 
và một hàm giải mã d
k 
∈ D 
d
k
: C → P sao cho d
k ( )(x)ek = x với mọi x ∈P 
Trong thực tế, P và C thường là bảng chữ cái (hoặc tập các dãy chữ cái có độ 
dài cố định). 
1.2.1. Mã cổ điển 
Hệ mã cổ điển (hệ mã đối xứng) là hệ mật mã mà khóa mã hóa có thể dễ dàng tìm 
được từ khóa giải mã và ngược lại. Trong nhiều trường hợp, khóa mã hóa và khóa giải 
mã là giống nhau. 
Hệ mật mã cổ điển yêu cầu người gửi và người nhận phải thỏa thuận một mã trước 
khi tin tức được gửi đi, khóa này phải được cất giữ bí mật. Độ an toàn của hệ này phụ 
thuộc vào khóa. Nếu để lộ khóa, thì bất kỳ người nào cũng có thể mã hóa và giải mã 
thông điệp đó. 
Nguồn tin Bộ mã hóa Kênh mở 
(không an toàn) 
Bộ giải mã Nhận tin 
Thám mã 
Kênh an toàn 
Nguồn khóa 
Bản rõ Bản mã Bản mã
KD KE B A 
Bản rõ 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 10
 Các đặc điểm của hệ mã cổ điển 
1. Các phương pháp mã hóa cổ điển đòi hỏi người mã hóa và người giải mã phải 
có cùng chung một khóa. 
2. Khóa phải được giữ bí mật tuyệt đối, khóa phải được gửi đi trên kênh an toàn. 
Vì dễ dàng xác định một khóa nếu biết khóa kia. 
Nhược điểm chính của phương pháp này là khóa được truyền trên kênh an toàn nên 
chi phí tốn kém và không kịp thời. Ưu điểm là tốc độ mã hóa và giải mã rất nhanh. 
Các hệ mật mã cổ điển cũng dùng chung một khoá cho việc lập mã và giải mã, các 
bản rõ và bản mã thường dùng cơ sở là bảng chữ cái trong ngôn ngữ tự nhiên. Và 
trong phần này ta sẽ dùng bảng chữ cái tiếng Anh làm ví dụ. 
 Nơi ứng dụng 
Hệ mã cổ điển thường được sử dụng trong môi trường mà khóa có thể dễ dàng trao 
chuyển bí mật. Nó cũng được dùng để mã hóa thông tin khi lưu trữ trên đĩa. 
1.2.1.1. Mã dịch chuyển 
Định nghĩa : Mã dịch chuyển: (P, C, K, E, D) 
P = C = K = Z
26 
với k ∈ K, định nghĩa e
k
(x) = (x + k) mod 26 
 d
k
(y) = (y – k) mod 26 
 (x, y ∈ Z
26
) 
Ví dụ: Dùng khoá k = 2 để mã hoá dòng thư: 
"madichchuyen'" 
dòng thư đó tương ứng với dòng số 
m a d i c h c h u y e n 
12 0 3 8 2 7 2 7 20 24 4 13 
Qua phép mã hoá e
2 
sẽ được: 
14 2 5 10 4 9 4 9 22 26 6 15 
o c f k e j e j w z g p 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 11
Bản mã sẽ là: 
“ocfkejejwzgp” 
Nhận được bản mã đó, dùng d
2 
để nhận được bản rõ. 
Cách đây 2000 năm mã dịch chuyển đã được Julius Ceasar sử dụng, với khoá k=3 
mã địch chuyển được gọi là mã Ceasar. 
Tập khoá phụ thuộc vào Z
m 
với m là số khoá có thể. 
Trong tiếng Anh tập khoá chỉ có 26 khoá có thể, việc thám mã có thể được thực 
hiện bằng cách duyệt tuần tự 26 khoá đó, vì vậy độ an toàn của mã dịch chuyển rất 
thấp. 
1.2.1.2. Mã thay thế 
Định nghĩa Mã thay thế: (P, C, K, E, D) 
P = C = Z
26
, K = S (Z
26
) Với mỗi π є K, tức là một hoán vị trên Z
26
, ta xác định 
e
π
(x) = π (x) 
d
π
(y) = π
 -1
(y) 
với x, y є Z
26
, π
 -1 
là nghịch đảo của π 
Ví dụ: π được cho bởi (ở đây ta viết chữ cái thay cho các con số thuộc Z
26
): 
a b c d e f g h i j k l m n 
z y x w v u t s r q p o n m 
o p q r s t u v w x y z 
l k j i h g f e d c b a 
 Bản rõ: 
“mathaythe” 
sẽ được mã hoá thành bản mã (với khoá π): 
“nzgszbgsv” 
Dễ xác định được π
 -1
, và do đó từ bản mã ta tìm được bản rõ. 
Mã thay thế có tập hợp khoá khá lớn - bằng số các hoán vị trên bảng chữ cái, tức số 
các hoán vị trên Z
26
, hay là 26! > 4.10
26
. Việc duyệt toàn bộ các hoán vị để thám mã là 
rất khó, ngay cả đối với máy tính. Tuy nhiên, bằng phương pháp thống kê, ta có thể dễ 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 12
dàng thám được các bản mã loại này, và do đó mã thay thế cũng không thể được xem 
là an toàn 
1.2.1.3. Mã Affine 
Định nghĩa Mã Affine: (P, C, K, E, D) 
P = C = Z
26
, K = { (a, b) є Z
26 
x Z
26 
: (a, 26) = 1 } 
với mỗi k = (a, b) є K ta định nghĩa: 
e
k
(x) = ax + b mod 26 
d
k
(y) = a
-1
(y – b) mod 26 
trong đó x, y є Z
26 
Ví dụ: Lấy k = (5, 6). 
Bản rõ: 
“maaffine” 
 m a a f f i n e 
x 12 0 0 5 5 8 13 4 
Y=5x + 6 mod 26 
 14 6 6 5 5 20 19 0 
y o g g f f u t a 
Bản mã: 
“oggffuta” 
Thuật toán giải mã trong trường hợp này có dạng: 
d
k
(y) = 21(y − 6) mod 26 
Với mã Affine, số các khoá có thể có bằng (số các số ≤ 26 và nguyên tố với 26) × 
26, tức là 12 × 26 = 312. Việc thử tất cả các khoá để thám mã trong trường hợp này 
tuy khá mất thì giờ nếu tính bằng tay, nhưng không khó khăn gì nếu dùng máy tính. 
Do vậy, mã Affine cũng không phải là mã an toàn 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 13
1.2.1.4. Mã Vingenere 
Định nghĩa Mã Vingenere: (P, C, K, E, D) 
Cho m là số nguyên dương. 
P = C = K = (Z 26 )m 
với mỗi khoá k = (k
1
, k
2
,…,k
m
) ∈ K có: 
e
k
(x
1
, x
2
,…, x
m
) = (x
1 
+ k
1
, x
2 
+ k
2
,…, x
m 
+ k
m
) 
d
k
(y
1
, y
2
,…, y
m
) = (y
1 
– k
1
, y
2 
– k
2
,…, y
m 
– k
m
) 
các phép cộng phép trừ đều lấy theo modulo 26 
Ví dụ: Giả sử m = 6 và khoá k là từ CIPHER - tức k = (2, 8, 15, 7, 4, 17). 
Bản rõ: 
“mavingenere” 
 m a v i n g e n e r e 
x 12 0 21 8 13 6 4 13 4 17 4 
k 2 8 15 7 4 17 2 8 15 7 4 
y 14 8 10 15 17 23 6 21 19 24 8 
 o i k p r x g v t y i 
Bản mã 
“ oikprxgvtyi ” 
Từ bản mã đó, dùng phép giải mã d
k 
tương ứng, ta lại thu được bản rõ. 
Chú ý: Mã Vingenere với m = 1 sẽ trở thành mã Dịch chuyển. 
Tập hợp các khoá trong mã Vingenere mới m ≥ 1 có tất cả là 26
m 
khoá có thể có. 
Với m = 6, số khoá đó là 308.915.776, duyệt toàn bộ chừng ấy khoá để thám mã bằng 
tính tay thì khó, nhưng với máy tính thì vẫn là điều dễ dàng. 
1.2.1.5. Mã Hill 
Định nghĩa Mã Hill: (P, C, K, E, D) 
Cho m là số nguyên dương. 
P = C = (Z 26 )m 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 14
K = { k ∈ (Z 26 )mxm 
mxm : ( )26 det(k), = 1 } 
với mỗi k ∈ K định nghĩa: 
e
k
(x
1
, x
2
,…, x
m
) = (x
1
, x
2
,…, x
m
).k 
d
k
(y
1
, y
2
,…, y
m
) = (y
1
, y
2
,…,y
m
).k
-1 
Ví dụ: Lấy m = 2, và k = ⎟⎟⎠
⎞
⎜⎜⎝
⎛
73
811
Với bộ 2 ký tự (x
1
, x
2
), ta có mã là (y
1
, y
2
) = (x
1
, x
2
). k được tính bởi 
y
1 
= 11.x
1 
+ 3.x
2 
y
2 
= 8.x
1 
+ 7.x
2
Giả sử ta có bản rõ: “tudo”, tách thành từng bộ 2 ký tự, và viết dưới dạng số ta 
được 19 20 | 03 14 , lập bản mã theo quy tắc trên, ta được bản mã dưới dạng số là: 09 
06 | 23 18, và dưới dạng chữ là “fgxs”. 
Chú ý: 
Để đơn giản cho việc tính toán, thông thường chọn ma trận vuông 2×2. Khi đó có 
thể tính ma trận nghịch đảo theo cách sau : 
Giả sử ta có k = ⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
Ta có ma trận nghịch đảo k 1− = 
1−
⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
Và được tính như sau 
1−
⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
= 
⎟⎟
⎟⎟
⎠
⎞
⎜⎜
⎜⎜
⎝
⎛
−−
−
−
−
−
bcad
a
bcad
c
bcad
b
bcad
d
Một chú ý là để phép chia luôn thực hiện được trên tập Z
26 
thì nhất thiết định thức 
của k: det(k) = (ad – bc) phải có phần tử nghịch đảo trên Z
26
, nghĩa là (ad – bc) phải là 
một trong các giá trị : 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, hoặc 25. Đây cũng là điều 
kiện để ma trận k tồn tại ma trận nghịch đảo. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 15
Khi đó: k
-1
.k = I là ma trận đơn vị (đường chéo chính bằng 1) 
1−
⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
 = 
⎟⎟
⎟⎟
⎠
⎞
⎜⎜
⎜⎜
⎝
⎛
−−
−
−
−
−
bcad
a
bcad
c
bcad
b
bcad
d
⎟⎟⎠
⎞
⎜⎜⎝
⎛
dc
ba
 = ⎟⎟⎠
⎞
⎜⎜⎝
⎛
10
01
Định thức của ⎟⎟⎠
⎞
⎜⎜⎝
⎛
73
811
Là 11*7 – 8*3 = 1 ≡ 1 mod 26 
Khi đó 
1
73
811 −
⎟⎟⎠
⎞
⎜⎜⎝
⎛ = ⎟⎟⎠
⎞
⎜⎜⎝
⎛
−
−
113
87
 ≡ ⎟⎟⎠
⎞
⎜⎜⎝
⎛
1123
187
 mod 26 
1.2.1.6. Mã hoán vị 
Định nghĩa Mã hoán vị: (P, C, K, E, D) 
Cho m là số nguyên dương. 
P = C = Z
26 
, K = S
m 
( )mk xxxe ...,,, 21 = ( ) ( ) ( )( )mxxx πππ ...,,, 21 
( )mk yyyd ...,,, 21 = ( ) ( ) ( )( )myyy 111 ...,,, 21 −−− πππ 
với mỗi k = π ∈ S
m 
, ta có 
Trong đó π
-1 
là hoán vị nghịch đảo của π 
Ví dụ: Giả sử m = 4, và khoá k được cho bởi phép hoán vị π 
Khi đó phép hoán vị nghịch đảo π
-1 
là: 
1 2 3 4 
2 3 4 1 
1 2 3 4 
4 1 2 3 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 16
Bản rõ: 
 “ mahoanvi ” 
 m a h o a n v i 
vt 1 2 3 4 1 2 3 4 
π 1→2 2→3 3→4 4→1 1→2 2→3 3→4 4→1 
vt 2 3 4 1 2 3 4 1 
 a h o m a h o m 
Bản mã: 
“ ahomahom ” 
Dùng hoán vị nghịch đảo, từ bản mật mã ta lại thu được bản rõ. 
Chú ý: 
Mã hoán vị là một trường hợp riêng của mã Hill. Thực vậy, cho phép hoán vị π của 
{1, 2,…, m}, ta có thể xác định ma trận K
π
= (k
ij
), với 
Thì dễ thấy rằng mã Hill với khoá K
π 
trùng với mã hoán vị với khoá π. 
Với m cho trước, số các khoá có thể có của mã hoán vị là m! 
Dễ nhận thấy với m = 26 ta có số khóa 26! (mã Thay thế) 
1.2.2. Mã khóa công khai 
Trong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứu, 
A(người gửi) và B (người nhận) chọn khóa bí mật K. Sau đó dùng K để tạo luật mã 
hóa ek và luật giải mã dk. Trong hệ mật này dk hoặc giống ek hoặc khác, nếu để lộ ek thì 
làm cho hệ thống mất an toàn. 
Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khóa K giữa 
A và B qua một kênh an toàn trước khi gửi một bản mã bất kỳ. Trên thực tế điều này 
rất khó đảm bảo. Chẳng hạn khi A và B ở cách xa nhau và họ chỉ có thể liên lạc với 
nhau bằng E-mail. Trong tình huống đó A và B không thể tạo một kênh bảo mật với 
giá phải chăng. 
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử 
Sinh viên: Phạm Thị Hiểu Lớp CT702 17
Ý tưởng xây dựng một hệ mật khóa công khai là tìm một hệ mật không có khả 
năng tính tóan để xác định dk khi biết ek. Nếu thực hiện được như vậy thì quy tắc mã ek 
có thể được công khai bằng cách công bố nó trong một danh bạ (bởi vậy nên có thuật 
ngữ hệ mật khóa công khai). 
Ưu điểm của hệ mật khóa công khai là ở chỗ A (hoặc bất kỳ A) có thể gửi một bản 
tin đã mã hóa cho B (mà không cần thông tin trước về khóa mật) bằng cách dùng mật 
mã công khai ek. Người nhận A sẽ là người duy nhất có thể giải mã được bản mã này 
bằng việc sử dụng luật giải bí mật dk của mình. Có thể hình dung hệ mật này tương tự 
như sau: A đặt một vật vào một hộp kim loại và rồi khóa nó lại bằng một khóa số do B 
để lại. Chỉ có B là người duy nhất có thể mở được hộp vì chỉ có anh ta mới biết tổ hợp 
mã của khóa số của mình. 
Ý tưởng về một hệ mật khóa công khai được Diffie và Hellman đưa ra vào năm 
1976. Còn việc hiện thực hóa nó thì do Riyesrt, Shamir và Ableman đưa ra lần đầu vào 
năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA và một số hệ mật khác. Độ bảo mật của 
hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyên lớn. 
 Nơi ứng dụng 
Sử dụng chủ yếu trên các mạng công khai như Internet, khi mà việc trao chuyển 
khóa bí mật tương đối khó khăn. Đặc
            Các file đính kèm theo tài liệu này:
 doko.vnTimhieuChukinhomvaungdu.pdf doko.vnTimhieuChukinhomvaungdu.pdf