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

NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG CỦA HỆ MẬT TRÊN BÀI TOÁN LOGARIT RỜI RẠC TRONG CHỮ KÝ SỐ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG




LƢƠNG VĂN QUYÊN


NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG CỦA HỆ MẬT TRÊN BÀI
TOÁN LOGARIT RỜI RẠC TRONG CHỮ KÝ SỐ



Chuyên ngành : Kỹ thuật Viễn thông
Mã số : 60.52.02.08

TÓM TẮT LUẬN VĂN THẠC SĨ





HÀ NỘI - 2013






















Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG


Người hướng dẫn khoa học:
……………………………………………………………
(Ghi rõ học hàm, học vị)


Phản biện 1:
……………………………………………………………………………

Phản biện 2:
…………………………………………………………………………


Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện

Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

TS. Ngô Đức Thiện
1

MỞ ĐẦU

1. Lý do chọn đề tài:
Ngày nay cùng với sự phát triển của các ngành khoa học, công nghệ thông tin
và truyền thông đã có những bước tiến mang tính đột phá, trong đó phải kể đến sự phát
triển của mạng Internet và mạng truyền số liệu. Điều này làm cho việc trao đổi, truyền
thông tin qua mạng ngày càng trở nên phổ biến trong mọi lĩnh vực của đời sống xã hội.
Cùng với sự phát triển của mạng thông tin và truyền thông cũng kéo theo sự gia tăng
một số lượng tội phạm lợi dụng kẽ hở bảo mật của mạng để tấn công, ăn cắp, làm giả
thông tin gây ra những thiệt hại to lớn.
Tại nước ta trong những năm gần đây việc tiến hành xây dựng chính phủ điện
tử đã và đang được các cơ quan chức năng nghiên cứu và đề xuất các giải pháp đầu tư
thích hợp, tại các ngân hàng việc cung cấp các dịch vụ giao dịch qua mạng ngày càng
phổ biến với hầu hết các khách hàng như dịch vụ Ebank, ví điện tử, dịch vụ thẻ….Về
mặt văn hóa báo mạng ngày càng phát triển cả về số lượng và chất lượng, cùng với
mạng truyền hình số, truyền hình cable ngày càng trở nên phổ biến, dịch vụ mạng có
thể cung cấp cho mọi đối tượng có đủ điều kiện và nhu cầu tiếp cận, và một vấn đề nảy
sinh đó là đã có một số lượng tội phạm lợi dụng kẽ hở bảo mật để tấn công, thay đổi
thông tin làm ảnh hưởng đến uy tín, gây thiệt hại rất lớn về kinh tế các tổ chức và cá
nhân.
Để đối phó với những vấn đề đó việc cần thiết là phải xây dựng được hệ thống

mật mã đủ mạnh đảm bảo sự bảo mật và an toàn thông tin, đây cũng là nhiệm vụ trọng
tâm và then chốt của các nhà nghiên cứu, xây dựng mật mã. Hiện nay trên thế giới tồn
tại hai hệ thống mật mã, hệ thống mật mã khóa bí mật hiện vẫn sử dụng trong nhiều
ứng dụng tuy nhiên có một nhược điểm như khó phân phối, quản lý khóa và không hỗ
trợ chữ ký điện tử.
Hệ thống mật mã khóa công khai có nhược điểm là khả năng xử lí chậm hơn
nhưng có ưu điểm là dễ phân phối và quản khóa do đó có thể hỗ trợ chữ ký số sử dụng
cho mục đích đảm bảo tính toàn vẹn dữ liệu. Mã khóa công khai dựa trên các hàm một
chiều (tính thuận thì dễ, tính ngược thì rất khó) cho đến này thế giới đã tìm ra 5 bài
toán một chiều có thể sử dụng xây dựng hệ mật khóa công khai, đó là (1) bài toán
2

logarit rời rạc; (2) bài toán phân tích thừa số (tiêu biểu là hệ mật RSA); bài toán xếp ba
lô; (4) bài toán mã sửa sai và (5) bài toán hệ mật xây dựng trên các đường cong elliptic.
Trong các thuật toán khóa công khai thì RSA sử dụng phương pháp phân tích
thừa số của số nguyên có ưu điểm có tốc độ dữ liệu nhanh hơn nhưng nhược điểm của
hệ đó là các điểm bất động điều này đồng nghĩa với việc thông tin cần mã hóa không
thể che dấu được đây cũng là nhược điểm lớn nhất của hệ mã hóa RSA, trong hệ mật
mã Elgamal có ưu điểm là tránh được các điểm bất động tuy nhiên nhược điểm của nó
là tốc độ mã thấp (~1/2) so với phương pháp RSA có tốc độ xấp xỉ bằng 1. Cho nên
nếu sử dụng hệ mật này vào việc mã hóa bảo mật để truyền dữ liệu thì không hiệu quả,
tuy nhiên ta có thể sử dụng hệ mật này vào lược đồ chữ ký số vì nó chỉ dùng để bảo
mật giá trị băm của các bản tin, các giá trị băm thường có kích thước nhỏ hơn nhiều
kích thước bản tin.
Từ những phân tích trên em đã chọn đề tài “Nghiên cứu khả năng ứng dụng
của hệ mật trên bài toán logarit rời rạc trong chữ ký số” để làm khóa luận tốt
nghiệp.
2. Mục đích nghiên cứu:
+ Nghiên cứu hệ mật khóa công khai: các bài toán dùng để xây dựng hệ mật
khóa công khai và các hệ mật tương ứng.

+ Nghiên cứu các sơ đồ chữ ký số điển hình, áp dụng một số hệ mật xây dựng
trên bài toán logarit rời rạc và các lược đồ chữ ký số.
+ Xây dựng các chương trình tính toán tham số cho hệ mật xây dựng trên bài
toán logarit rời rạc và mô phỏng một sơ đồ chữ ký số cụ thể sử dụng bài
toán này.
3. Đối tƣợng và phạm vi nghiên cứu:
+ Đối tương nghiên cứu: Mật mã khóa công khai, hàm băm xác thực và chữ
ký số.
+ Phạm vi nghiên cứu: Áp dụng các hệ mật khóa công khai sử dụng bài toán
logarit rời rạc vào sơ đồ chữ ký số.
4. Phƣơng pháp nghiên cứu:
Sử dụng lý thuyết về mật mã học, các cấu trúc đại số trên vành đa thức. Kết hợp
với việc tính toán và mô phỏng hệ mật khóa công khai, hàm băm và chữ ký số.
3

CHƢƠNG I TỔNG QUAN VỀ MẬT MÃ HỌC VÀ CHỮ KÝ SỐ

1.1. Cơ sở toán học của mật mã.
1.1.1. Số nguyên.
Tập số nguyên   
 Định nghĩa 1.1 [1] : Cho   , a là ước của b nếu       . Ký
hiệu a|b.
 Định nghĩa 1.2 [1]: c là ước chung của a và b nếu c|a và c|b.
 Định nghĩa 1.3 [1] (ƣớc chung lớn nhất - UCLN) : Số nguyên dương d là
UCLN của các số nguyên a và b ( Ký hiệu   ) nếu:
- d là ước chung của a và b.
- Nếu   c|a và c|b thì c|d.
 Định nghĩa 1.4 [1] (bội chung nhỏ nhất - BCNN) : Số nguyên dương d là
BCNN của hai số nguyên a và b ( Ký hiệu   




và 






) nếu :
- a|d và b|d.
- Nếu   a|c và b|c thì d|c.
1.1.2. Định nghĩa số nguyên tố và hai số nguyên tố cùng nhau.
 Định nghĩa 1.5 [1] : Số nguyên    được gọi là số nguyên tố nếu các ước
dương của nó chỉ bao gồm 1 và A. Ngược lại A được gọi là hợp số.
 Định nghĩa 1.6 [1] : Hai số nguyên dương A và B được gọi là nguyên tố cùng
nhau nếu :



 .
 Định nghĩa 1.7 [1] (hàm Phi – Euler) : Với    hàm 



được xác định
là số các số nguyên trong đoạn




nguyên tố cùng nhau với n. Hàm 




được gọi là hàm Phi Euler.
 Một số tính chất của hàm phi Euler :
- Nếu P là số nguyên tố thì ta có    .
- Nếu



  thì 



 








- Nếu   



 




  



trong đó 





là các số nguyên tố thì
ta có : 



  

 






 





 

 





4

1.1.3. Các số nguyên MODULO N.
 Định nghĩa 1.8 [1] : Cho n là số nguyên dương, hai số nguyên a và b được gọi
là đồng dư với nhau theo modulo n (được ký hiệu là   ) nếu :
 .
 Các tính chất : Với 



   ta có :
- Tính chất về sự tồn tại :    khi và chỉ khi cả a và b đều có phần
dư khi chia cho n.
- Tính phản xạ :   .
- Tính đối xứng : Nếu    thì ta có   .
- Tính chất bắc cầu : Nếu có    và    thì ta có  
.
- Tính tuyến tính : Nếu   

 và   


 thì ta có    


 

.
 Định nghĩa 1.9 [1] : Các số nguyên modulo n (ký hiệu 

) là tập của các số
nguyên

  

. Các phép cộng, trừ, nhân trong 

được thực hiện theo
modulo n.
 Định nghĩa 1.10 [1] : Cho  

, phần tử nghịch đảo của  nếu có là
một số nguyên  

thỏa mãn :    ( x nếu tồn tại thì nó là duy
nhất và a được gọi là khả nghịch, phần tử nghịch đảo của a được ký hiệu là 

.
 Định nghĩa 1.11 [1] : Phép chia



  

 được xác định khi b
là phần tử khả nghịch.
 Định lý 1.1 [1] : Cho   

, khi đó a là phần tử khả nghịch (

 

) nếu
và chỉ nếu :



 .
 Các định nghĩa về phần tử nghịch đảo :
- Cho  

, phần tử nghịch đảo của  nếu có là một số nguyên
  

thỏa mãn :    ( x nếu tồn tại thì nó là duy nhất và a được
gọi là khả nghịch, phần tử nghịch đảo của a được ký hiệu là 

.
- Phép chia


  


 được xác định khi b là phần tử khả
nghịch
5

 Định lý 1.2 [1] : Cho   

, khi đó a là phần tử khả nghịch (

 

) nếu
và chỉ nếu :



 .
1.1.4. Nhóm nhân.
 Định nghĩa 1.12 [1] : Nhóm nhân của 

là 




  






 

, trong
trường hợp n là số nguyên tố thì 




      

.
 Định nghĩa 1.13 [1] : Cấp của 


là số phần tử trong 


(được ký hiệu là



). Theo định nghĩa của hàm Phi – Euler ta có 


  .
 Định nghĩa 1.14 [1] : Cho   


. Cấp của a là số nguyên dương nhỏ nhất t

sao cho 

 .
 Định lý 1.2 [1] :
- Định lý Euler : Nếu   


thì 




 
- Nếu      thì ta có 

 

 với mọi số nguyên a.
- Cho  là số nguyên tố :
 Định lý Ferma : Nếu



  thì 

 .
 Nếu     thì 

 


 với mọi số nguyên a.
 

  với mọi số nguyên a.
 Định nghĩa1.15 [1] : Cho   


, nếu cấp của  là  thì  được gọi là
phần tử sinh hay phần tử nguyên thủy của 


. Nếu 


có một phần tử sinh thì



được gọi là cyclic.
 Một số tính chất của phần tử sinh :
- Nếu  là một phần tử sinh của 


thì : 







    



 

.
- Nếu  là một phần tử sinh của 


thì khi đó   

 cũng là phần tử sinh
của 









 . Từ đó ta có nếu 


là cyclic thì số phần tử sinh là





.
- 


có phần tử sinh khi và chỉ khi   

hay 

khi  là số nguyên tố lẻ
và   . Còn nếu n là số nguyên tố thì chắc chắn 


có phần tử sinh.
1.1.5. Các thặng dƣ bậc hai :
 Định nghĩa 1.16 [1] : Phần từ   


được gọi là thặng dư bậc 2 theo modulo n
nếu   




 . Gọi 

là tập các thặng dư bậc 2 và 






là tập
các thặng dư không bậc 2.
6

 Định lý 1.3 (về số lƣợng thặng dƣ bậc 2) [1] :
+ Với p là số nguyên tố,  


, α là phần tử sinh của 


, khi đó  

 là
thặng dư bậc 2 khi và chỉ khi  chẵn. Số thặng dư bậc 2 được tính bằng công
thức


















.
+Với    trong đó  là các số nguyên tố. Khi đó   

khi và chỉ khi
  

và   

. Vậy số thặng dư bậc 2 là :







   , số
thặng dư không bậc 2 là :












  .
1.2. Các khái niệm cơ bản về mật mã học.
- Mật mã học : là lĩnh vực khoa học nghiên cứu về các thuật toán và phương
thức để đảm bảo tính bí mật và xác thực của thông tin. Các sản phẩm của
lĩnh vực này là các hệ mật mã, các hàm băm, các hệ chữ ký số, các giao thức
phân phối và quản lý khóa.
- Thám mã : là lĩnh vực khoa học chuyên nghiên cứu, tìm kiếm yếu điểm của
các hệ mật để từ đó đưa ra phương pháp tấn công các hệ mật đó. Mật mã và
mã thám là hai lĩnh vực đối lập nhau nhưng gắn bó mật thiết với nhau.
Không thể xây dựng một hệ mật tốt nếu không hiểu biết sâu về mã thám.
Thám mã chỉ ra yếu điểm của hệ mật. Yếu điểm này có thể được sử dụng để
tấn công hệ mật này nhưng cũng có thể được sử dụng để cái tiến hệ mật cho
tốt hơn.
1.3. Phân loại và sơ đồ chức năng của hệ mật.
1.3.1. Hệ mật mật mã khóa bí mật.
Trong hệ mật mã khóa bí mật thì trong cả hai quá trình mã hóa và quá trình giải
mã đều sử dụng chung một khóa được gọi là khóa bí mật, nên khi bị lộ khóa thì tính
bảo mật của hệ mật cũng không còn. Sơ đồ hệ mật mã khóa bí mật được thể hiện như
hình 1.1.
7


Hình 1.1. Sơ đồ hệ mật mã khóa bí mật.
 Một số đặc điểm hệ mật mã khóa bí mật.
 Trước khi tiến hành trao đổi thông tin thì bên gửi và bên nhận phải tiến hành
thống nhất được việc sử dụng khóa bí mật cho quá trình mã hóa và giải mã.

 Trong các hệ mật mã khóa bí mật thì do việc sử dụng khóa bí mật nên độ an
toàn của hệ mật liên quan trực tiếp đến quá trình bảo mật khóa bí mật.
 Khi số lượng khóa bí mật tăng lên việc quản lý các khóa này càng trẻ nên phức
tạp. Khi giao dịch với với nhiều đối tượng khác nhau thì một người có thể phải
giữ nhiều khóa bí mật.
 Nội dung của bản rõ không thể xác thực được nguồn gốc cũng như không có
tính chất không thể phủ nhận của chủ thể.
1.3.2. Hệ mật mã khóa công khai.
1.3.2.1. Sơ đồ hệ mật khóa công khai.
Mật mã khóa công khai, sử dụng một cặp chìa khóa có liên quan với nhau về
mặt toán học, một khóa công khai dùng để mã hoá (public key) và một khóa riêng
dùng để giải mã (private key). Một thông điệp sau khi được mã hóa bởi khóa công
khai sẽ chỉ có thể được giải mã với khóa riêng tương ứng, sơ đồ mật mã khóa công
khai được thể hiện ở hình 1.2.


Bản rõ M
Bản mã C
Bản mã C
Bản rõ M
Nguồn tin
Bộ mã hoá
Kênh mở
(không an toàn)
Bộ giải mã
Nhận tin
Kênh an toàn
Thám mã
Nguồn khoá
K

8


Hình 1.2. Sơ đồ mật mã khóa công khai.
Khi thực hiện mật mã khóa công khai, người gửi mã hóa bản rõ(m) bằng khóa
công khai thu được bản mã (C) và gửi cho người nhận. Do khóa riêng chỉ có người
nhận mới có nên chỉ có người nhận mới có thể sử dụng khóa riêng để giải mã được
bản bản mã và lấy được bản rõ. Trong trường hợp thám mã lấy được bản mã và khóa
công khai thì cũng rất khó để tìm được bản rõ vì không có được khóa riêng việc giải
mã nếu thực hiện được thì sẽ mất rất nhiều thời gian.
1.3.2.2. Nguyên tắc cấu tạo của các hệ mật mã khóa công khai.
 Các hệ mã khóa công khai được xây dụng trên các hàm được gọi là các hàm 1
chiều.
 Hàm một chiều     là một hàm mà nếu biết    ta có thể dễ dàng tính
được hàm   . Nhưng với    việc tìm    sao cho    là rất
khó, điều đó có nghĩa là việc tính hàm thuận    thì dễ nhưng việc tìm
hàm ngược   

 là rất khó.
 Để thuận tiện cho việc tính toán mã hóa và giải mã thực hiện nhanh chóng,
trong hệ mật mã khóa công khai thực hiện quy ước và sử dụng các thuật toán
tính toán nhanh được đồng bộ giữa mã hóa và giải mã giúp cho việc tìm  thỏa
mãn    được thực hiện dễ dàng và nhanh chóng hơn.
1.3.2.3. Một số đặc điểm của hệ mật mã khóa công khai.
 Trong các mật mã khóa công khai thì khóa riêng và khóa công khai có liên quan
với nhau về mặt toán học theo kiểu từ khóa riêng có thể dễ dàng tính được khóa
công khai, tuy nhiên theo chiều ngược lại từ khóa công khai thì rất khó để tính
được khóa riêng.
Giải mã
Mã hóa

Người nhận
Người gửi
Khóa công
khai(public key)


Bản mã (C)
Khóa riêng
(private key)


Bản rõ(m)
Bản rõ(m)
Kênh mở
9

 Mật mã khóa công khai có ưu điểm nổi bật đó là tính an toàn của hệ mã cao hơn,
việc phân phối và quản lý khóa đơn giản hơn, và một đặc điểm quan trọng là
khi khóa bị lộ dễ dàng xác định được chủ thể làm lộ khóa.
 Mật mã khóa công khai có nhược điểm là tốc độ chậm nên chưa thể thay thế
hoàn toàn hệ thống mã hoá khoá bí mật được, nó ít được sử dụng để mã hoá dữ
liệu mà thường dùng để mã hoá khoá.
1.4. Hàm băm, một số sơ đồ xác thực thông tin.
1.4.1. Định nghĩa và các đặc trƣng của hàm băm.
Định nghĩa 1.18[1] : Hàm băm là các thuật toán không sử dụng khóa để mã
hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc”
(băm) thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra
một bản băm – văn bản đại diện – có kích thước cố định. Do đó người nhận không
biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm.
Giá trị của hàm băm là duy nhất, và không thể suy ngược lại được nội dung thông

điệp từ giá trị băm này.
Các đặc trƣng của hàm băm:
Hàm băm h là hàm băm một chiều (one-way hash) với các đặc tính sau:
- Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất.
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp x’ thì
h(x’) h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của
thông điệp thì giá trị băm cũng vẫn thay đổi. Điều này có nghĩa là: hai thông
điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm. Nghĩa là:
với thông điệp x thì dễ dàng tính được z = h(x), nhưng lại không thể (thực chất
là khó) suy ngược lại được x nếu chỉ biết giá trị hàm băm h.
1.4.2. Tính chất và phân loại hàm băm.
1.4.2.1. Tính chất của hàm băm.
Tính chất 1: Hàm băm h là không va chạm yếu
hàm h phải thỏa mãn tính không va chạm yếu: Hàm băm h là không va chạm
yếu nếu khi cho trước một bức điện x, không thể tiến hành về mặt tính toán để tìm ra
một bức điện x’ x mà h(x’) = h(x).
Tính chất 2: Hàm băm h là không va chạm mạnh.

10

Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra
hai bức thông điệp x và x’

mà x x’ và h(x) = h(x’).
Tính chất 3: Hàm băm h là hàm một chiều: Hàm băm h là một chiều nếu khi
cho trước một bản tóm lược thông báo z thì không thể thực hiện về mặt tính toán để
tìm ra thông điệp ban đầu x sao cho h(x) = z .
1.4.2.2. Phân loại hàm băm.
Hàm băm được phân ra thành 2 loại chính :

- Các hàm băm không khóa MDC.
- Các hàm băm có khóa MAC.

Hình 1.3. Phân loại hàm băm.
1.4.3. Tính toàn vẹn và các sơ đồ xác thực thông tin.
 Tính toàn vẹn của dữ liệu:
Định nghĩa 1.19 [1] : Tính toàn vẹn của dữ liệu là tính chất đảm bảo dữ liệu
không bị sửa đổi một các bất hợp pháp kể từ khi dữ liệu được tạo ra, được phát tán
hoặc đang được lưu giữ bởi một nguồn được xác định.
Định nghĩa 1.20 [1] : Xác thực tính nguyên bản của dữ liệu là một kiểu xác
thực đảm bảo một bên liên lạc được chứng thực là nguồn thực sự tạo ra dữ liệu đó ở
một thời điểm nào đó trong quá khứ.
Xác thực thông báo là một thuật ngữ được dùng tương đương với xác thực
nguyên gốc của dữ liệu.
 Các sơ đồ xác thực thông tin:

Hàm băm
Không có khoá
Có khoá
Các ứng dụng khác
Các ứng dụng khác
MAC
OWHF
CRHF
MDC
11


Hình 1.4 Sơ đồ chỉ sử dụng MDC và mã hóa


Hình 1.5. Sơ đồ sử dụng MDC và kênh an toàn
1.5. Tổng quan về chữ ký số.
1.5.1. Khái niệm về chữ ký số.
Để chứng thực nguồn gốc của một tài liệu người ta thường ký trực tiếp lên tài
liệu đó và đây gọi là chữ ký tay, chữ ký tai là một bộ phận vật lý của tại liệu được ký.
Đối với chữ ký tay thì một yêu cầu bất buộc đó là người ký phải ký tay trực tiếp lên tài
liệu cần ký. Tuy nhiên ngày nay cùng với sự phát triển của thương mại điện tử, việc sử
dụng chữ ký tay trực tiếp đôi khi trở thành rào cản đối và không phù hợp với các giao
dịch điện tử. Thêm vào đó ngày nay các tài liệu được số hóa và người ta cũng có nhu
cầu chứng thực nguồn gốc hay hiệu lực của các tài liệu này. Rõ ràng việc sử dụng chữ
ký tay là không khả thi vì chúng là tài siệu số và không được in trên giấy. Vây một yêu
cầu đặt ra là làm sao để xây dựng được chữ ký số có các đặc tính như chữ ký tay để có
thể sử dụng trên các tài liệu số và các giao dịch diện tử? Để đi tìm lời giải cho vấn đề
này trước tiên chúng ta phải hiểu được các đặc tính của chữ ký .
Thông báo M
MDC
Thám mã



Bên phát
Kênh mở
MDC
Bên thu
Đ
S
Mã hóa
k




So sánh
Giải mã
k
M



Thông báo M
MDC
Thám mã



Kênh an toàn
Bên phát
Kênh mở



MDC
So sánh
Bên thu
Đ
S
12

Về mặt lý tưởng chữ ký có các đặc tính sau :
- Chữ ký là bằng chứng thể hiện người ký có chủ định ký văn bản.
- Chữ ký thể hiện “Chủ Quyền ”, nó làm cho người nhận văn bản biết rằng ai

đích thị là người đã ký văn bản.
- Chữ ký không thể “tái sử dụng được”, nó là phần của văn bản mà không thể sao
chép sang văn bản khác.
- Văn bản đã ký không thể thay đổi được.
- Chữ ký không thể giải mạo và cũng là thứ không thể chối bỏ.
1.5.2. Tạo và kiểm tra chữ ký số.
Tạo chữ ký số : Sử dụng thuật toán băm, từ tài liệu gốc ta có được tóm lược
thông báo, theo tính chất hàm băm tóm lược thông báo thu được là duy nhất có độ dài
phù hợp và là đại diện cho văn bản gốc. Sau đó tóm lược thông báo được mã hóa bằng
khóa không khai tạo ra bản mã thông báo, điều này đảm bảo cho tóm lược thông báo
sẽ không bị thay đổi. Cuối cùng bản mã thông báo được đính kèm nội dung tài liệu gốc
được gọi là ” Tài liệu đã được ký” được chuyển đển cho người nhận.
Tại phía người nhận việc kiểm tra tính toàn vẹn(kiểm tra chữ ký) của tài liệu được
thực hiện theo các bước sau :
- Tách tài liệu nhận được để thu được hai phần là : nội dung tài liệu số gốc và bản
mã thông báo.
- Giải mã bản mã thông báo với khóa công khai, đồng thời tiến hành băm nội
dung tài liệu gốc với cùng thuật toán băm đã quy ước với bên gửi.
- Tiến hành so sánh hai mã băm để xác định văn bản có bị sửa đổi hay không.
Nếu mã băm trùng nhau có nghĩa là văn bản không bị sửa đổi, trong trường hợp
ngược lại mã băm khác nhau có nghĩa văn bản không còn nguyên vẹn.
Trong hình sau chỉ ra sơ đồ chữ ký số.
13


Hình 1.6. Sơ đồ chữ ký số.
1.6. Kết luận chƣơng
Trong nội dung chương 1, luận văn đã đưa ra các khái niệm cơ bản về mật mã
và chữ ký số. Nội dung chương 1 cũng đưa ra và phân tích cách thức mã hóa và giải
mã của các hệ mã khóa bí mât và khóa công khai từ đó thấy được ưu nhược điểm của

từng hệ mật mã. Trong chương này cũng đưa ra khái niệm tổng quan về hàm băm và
chữ ký số và các sơ đồ xác thực thông tin.












Thông báo
M
MDC
Thám mã



Bên phát
Kênh mở
MDC
Bên thu
Đ
S
Mã hóa




So sánh
Thông báo
M






Giải mã









14

CHƢƠNG II NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG HỆ MẬT
XÂY DỰNG TRÊN BÀI TOÁN LOGARIT RỜI RẠC VÀO CHỮ
KÝ SỐ
2.1. Bài toán logarit rời rạc.
2.1.1. Bài toán logarit trên trƣờng số thực R.
Định nghĩa logarit : cho hai số dương  với   . Số  thỏa mãn đẳng thức
  


được gọi là logarit cơ số a của b và được kí hiệu là   

. Như vậy ta có :
- Bài toán thuận :   

(  ).
- Bài toán ngược :   

(    )
Một số tính chất hàm logarit : Với       ta có:
-   

   ;
-   

   ;
-   



   ;
-   



  ;
-   





 




 




;
-   



 




 




;
2.1.2. Bài toán logarit trên trƣờng hữu hạn.
2.1.2.1. Một số định nghĩa đại số trừu tƣợng.
Định nghĩa vành : Vành là một tập R với hai toán tử “+” và “” thỏa mãn các

điều kiện sau :
 R là một nhóm giao hoán đối với phép cộng :
- Phép cộng có tính kết hợp:   

 

       ;
- Phép cộng có phần tử trung hòa:           ;
- Mọi phần tử của R có phần tử đối :   

  

 

   ;
- Phép cộng có tính giao hoán:         ;
 Phép nhân có tính chất phân phối với phép cộng :   

  

 
 .
 Phép nhân có tính chất kết hợp :   



  .
 Phép nhân có phần tử đơn vị :         .
 Một vành được gọi là giao hoán nếu :     .
15


Định nghĩa trƣờng : Trường là một vành giao hoán trong đó các phần tử khác
“0” đều có phần tử nghịch đảo.
Định nghĩ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ử, và được ký hiệu là 

hoặc GF(p) với p là số phần tử thuộc trường.
2.1.2.2. Bài toán logarit trên trƣờng hữu hạn.
Xét vành số 

, với p là số nguyên tố, vậy ta có : 

 . Tất cả các phần
tử    của trường tạo thành nhóm nhân : 




      

.
 Xét bài toán thuận :   

.
Ví dụ 2.1 : Cho     . Ta tính   

 với   

 ,
các giá trị được cho bởi bảng sau :

Bảng 2.1. Tính   

, các cặp nghịch đảo 

.
x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18



2
4
8

16
13
7
14
9
18
17
15
11
3
6
12
5
10
1



Nhận xét :
- Do a là phần tử nguyên thủy nên 

sẽ đi qua hết các phần tử trong vành 

.
- Từ phần tử nguyên thủy    đã cho ban đầu ta có thể tìm được các phần tử
nguyên thủy khác theo công thức   

 với







 . Vậy tập
các phần tử nguyên thủy của 

là :



.
- Các phần từ nguyên thủy tạo thành các cặp nghịch đảo :   

(do
   ),   

(do    ),   

(do
  ). Bảng sau thể hiện quan hệ các cặp nghịch đảo.
 Bài toán ngƣợc :   

 với   



Dựa trên các tính chất của hàm logarit ta có :
-   


 



 



 ;
-   

 



 



 ;
-   


  

     

;
-   


      ;
Các cặp nghich đảo
16

Ví dụ 2.2 : Cho     . Ta tính   

 với   


, từ bảng đã tính ở Ví dụ 2.1.2.2.1 các giá trị của hàm ngược.
Bảng 2.2. Tính   

 từ 

với   

 .
x
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18



2
4
8
16
13
7
14
9
18
17
15
11
3
6
12
5
10
1




18
1
13
2
16
14
6
3
8
17
12
15
5
7
11
4
10
9
Do 

  vậy nên ta có 

=18; 

  vậy nên ta có 

=1, tương tự ta
tính được các phần tử   

 khác.

2.1.2.3. Bài toán logarit rời rạc.
Cho 

, với  là số nguyên tố,  là phần tử nguyên thủy  


. Hãy tìm :
  

, với   


.
Nhận xét: với   


thì bài toán   

 có nghiệm khi  là phần tử
nguyên thủy, bài toán có thể không có nghiệm khi  bất kỳ.
Ví dụ 2.3 : Giải bài toán với   , ta có 6 điểm nguyên thủy (3 cặp nghịch
đảo). Áp dụng : 


  

     

  



 

    .
 Xét cặp nguyên thủy (2,10) :
- Ta có 

     

 (với   và   ) ta lập được bảng :
Bảng 2.3. Tính các logarit rời rạc   

 và   

.
x
1
2
3
4
5
6
7
8
9
10
11
12
13
14

15
16
17
18



2
4
8
16
13
7
14
9
18
17
15
11
3
6
12
5
10
1



18
1

13
2
16
14
6
3
8
17
12
15
5
7
11
4
10
9



18
17
5
16
2
4
12
15
10
1
6

3
13
11
7
14
8
9
2.2. Bản chất bài toán logarit rời rạc.
Từ những ví dụ trên ta có thể rút ra kết luận sau :
Logarit rời rạc là sự tiếp nối của phép tính lôgarit trên trường số thực vào các
nhóm hữu hạn. Chúng ta đã biết với hai số thực x, y và cơ số     ,nếu 

 
thì x được gọi là logarit cơ số a của y, ký hiệu  

.
Lôgarit rời rạc có ứng dụng trong hệ mật mã khóa công khai Hệ mật mã
Elgamal.
17

Cho p là một số nguyên tố. Xét nhóm nhân các số nguyên modulo p: 




  

với phép nhân modulo p.
Nếu ta tính luỹ thừa bậc k của một số trong nhóm rồi rút gọn theo modulo p thì
ta được một số trong nhóm đó. Quá trình này được gọi là luỹ thừa rời rạc modulo p.

Chẳng hạn với   , lấy   ,    ta có : 

   .
Lôgarit rời rạc là phép tính ngược lại:
Biết : 

  hãy tìm k.
2.3. Các hệ mật xây dựng trên bài toán logarit rời rạc.
2.3.1. Trao đổi và thỏa thuận khóa Diffie – Hellman.
Bài toán : Giả sử A và B cần thống nhất 1 khóa K dung cho hệ khóa bí mật. Để
thỏa thuận khóa K chung cho cả hai bên qua một kênh không an toàn, với yêu cầu
khóa K không bị lộ, khi đó A và B có thể dung thủ tục thỏa thuận khóa Diffie –
Hellman như sau :
Trước hết chọn một số nguyên tố thích hợp  và  là một phần tử nguyên thủy
của 


, các giá trị  được công khai.
A
- A chọn x ngẫu nhiên (      ) và
tính 

 sau đó gửi cho B.
- A nhận được 

và tính 



.

- Bên A có 



  
B
- B chọn y ngẫu nhiên (      ) và
tính 

 sau đó gửi cho A.
- B nhận được 

và tính 



.
- Bên B có 



  
Như vậy quá trình trao đổi khóa bí mật K đã được hai bên A và B thực hiện
xong.
Nhƣợc điểm :
Đối với thỏa thuận trao đổi khóa Diffie – Hellman, thám mã có thể sử dụng
phương pháp tấn công “kẻ đúng giữa” (Man in the middle).




Hình 2.1. Tấn công kẻ đứng giữa.
Việc Diffie – Hellman bị tấn công theo phương pháp “kẻ đứng giữa” có thể
được khắc phục bằng cách sử dụng xác thực trong trao đổi khóa.
A
B
B’
A’
K
1
K
2
18

2.3.2. Hệ mật Omura – Massey.
 Ý tƣởng xây dựng hệ mật Omura – Massey : Bản tin m từ A sẽ được mã hóa
bằng khóa riêng 

để thu được bản mã 

và được gửi cho B. Phía B sẽ tiếp
tục mã hóa 

bằng khóa riêng 

để thu được bản mã 

và gửi lại cho A.
Phía A nhận được bản mã 

sẽ tiến hành giải mã với khóa riêng 


kết quả
giải mã thu được 

và gửi trả lại cho B. Phía B nhận được 

sẽ tiến hành giải
mã với khóa riêng 

và thu được bản tin m mà bên A cần gửi.
 Áp dụng bài toán logarit rời rạc vào hệ mật Omura – Massey.
- Cho 


với p là số nguyên tố, trước khi tiến hành trao đổi tin tức B nhận khóa
công khai p từ mạng.
- Quá trình sinh khóa bí mật :
A
B
+ A chọn  :     .
+ Khóa bí mật của .
+ Khóa công khai p.

+ B chọn :     .
+ Khóa bí mật của .
+ Khóa công khai p.
- Quá trình trao đổi thông tin : giả sử A cần gửi bản tin M cho B, quá trình thực
hiện trao đổi thông tin được thực hiện như sau :



+ A tính 

 rồi gửi cho B.
+ B tính 



  

.

+ B tính 



 rồi gửi cho A.

+ B tính 



  .
 Nhận xét :
- Để tìm bản tin M thám mã phải giải bài toán logarit rời rạc.
- Về mặt hiểu quả truyền tin thì hệ mật Omura – Massey cho tốc độ truyền tin
thấp  


, phương pháp này chỉ thích hợp cho việc truyền tin ngắn hoặc
truyền khóa (phân phối khóa cho một hệ mật khóa bí mật).

2.3.3. Hệ mật Elgamal.
Quá trình sinh khóa :
- Bước 1 : Chọn số nguyên tố lớn ,  là phần tử nguyên thủy  


.
- Bước 2 : Chọn a ngẫu nhiên       và tính 

.
19

- Bước 3 : + Tính khóa công khai : 

.
+ Khóa bí mật là : .
Quá trình mã hóa : B cần gửi bản tin m cho A ( độ dài   )
- Bước 1 : B nhận khóa công khai của A : 

.
- Bước 2 : B chọn k ngẫu nhiên        và tính :
  


  




- Bước 3 : B gửi bản mã    cho A.
Quá trình giải mã : A nhận bản mã C và tiến hành các bước giải mã như sau :

- Bước 1 : A tính 

  



  

.
- Bước 2 : A tính 

 



  
Nhận xét :
- Để giải mã thì thám mã phải tìm được  (khóa bí mật), muốn tìm được  thì
thám mã phải giải bài toán logarit rời rạc ( tính   



) với  lớn không
thể giải được và hệ mật có thể coi là an toàn.
- Hệ mật elgamal có nhược điểm đó là bản mã thu được sau khi mã hóa sẽ có độ
dài gấp 2 lần so với bán tin ban đầu, do đó hiệu quả truyền tin không cao.
2.4. Áp dụng hệ mật elgamal vào sơ đồ chữ ký số.

Hình 2.2. Sơ đồ chữ ký số dung hệ mật elgamal.


Thông báo
M
MDC
Thám mã

Bên phát
Kênh mở
MDC
Bên thu
Đ
S
Mã hóa



So sánh
Thông báo
M






Giải mã








m’
20

 Quá trình sinh khóa :
- Bước 1 : Chọn số nguyên tố lớn ,  là phần tử nguyên thủy  


.
- Bước 2 : Chọn a ngẫu nhiên       và tính 

.
- Bước 3 : + Tính khóa công khai : 

.
+ Khóa bí mật là :.
 Quá trình tạo ký :
- Bước 1 : Đặt   

với       .
- Bước 2 : Chọn số nguyên ngẫu nhiên  :        và     .
- Bước 3 : Thực hiện tính :



 





 



 


  
nếu 

  thì
làm lại từ bước 2 đến bước 3.
 Quá trình kiểm tra chữ ký :
- Bước 1 : Khi nhận được văn bản đã ký, để kiểm tra phía nhận sẽ tiến hành tách
để lấy riêng phần văn bản gốc và phần chữ ký riêng. Sau đó tiến hành băm văn
bản gốc với cùng thuật toán băm với phía gửi để thu được   

.
- Bước 2 : Thực hiện tính :



 


















- Bước 3 : Tiến hành so sánh 

và 

, nếu 

 

có nghĩa là chữ ký đúng, còn


 

đồng nghĩa với việc văn bản hoặc chữ ký đã bị sửa đổi.
2.5. Kết luận chƣơng.
Trong chương này đã đi nghiên cứu về bài toán logarit rời rạc và ứng dụng kết
quả có được từ việc nghiên cứu bài toán logarit rời rạc để xây dựng các hệ mật khóa
công khai. Từ kết quả nghiên cứu có được, nội dung chương cũng đã nêu ra bản chất
bài toán logarit rời rạc và ứng dụng xây dựng chữ ký số trên bài toán logarit rời rạc.









21

CHƢƠNG III XÂY DỰNG CHƢƠNG TRÌNH TÍNH TOÁN
THAM SỐ CHO CÁC HỆ MẬT XÂY DỰNG TRÊN BÀI TOÁN
LOGARIT RỜI RẠC.

3.1. Xây dựng chƣơng mô phỏng toán bài toán logarit rời rạc.
 Đặt vấn đề cho bài toán logarit rời rạc :
Cho 

, với  là số nguyên tố,  là phần tử nguyên thủy  


. Hãy tìm :
  

, với   


.
- Bài toán thuận :   


(  


).
- Bài toán ngược :   

(  


).
 Ý tƣởng xây dựng chƣơng trình :
- Vào P là số nguyên tố, xây dựng chương trình tìm tất cả các phần từ nguyên
thủy 


.
- Chọn một phần tử nguyên thủy  bất kỳ từ các phần tử nguyên thủy tìm được
và nhập một số  bất kỳ thỏa mãn điều kiện :   


.
- Xây dưng chương trình tính   

 và   

(  


). Và
cho hiển thị kết quả tính toán ra màn hình.

 Xây dựng giao diện chƣơng trình mô phỏng nhƣ sau :

Hình 3.1. Giao diện chƣơng trình mô phỏng bài toán logarit rời rạc.
22

3.2. Xây dựng chƣơng trình mô phỏng tham số cho hệ mật ứng dụng bài
toán logarit rời rạc.
 Đặt vấn đề :
- Xây dựng tham số khóa cho hệ mật elgamal, yêu cầu tìm được cặp khóa công
khai : 

, bí mật : cho hệ mật elgamal.
 Ý tƣởng xây dựng chƣơng trình mô phỏng :
- Vào số nguyên tố  tìm tìm tất cả các phần từ nguyên thủy 


.
- Chọn một phần tử nguyên thủy  bất kỳ từ các phần tử nguyên thủy tìm được
và nhập một số  bất kỳ thỏa mãn điều kiện      .
- Tính 

thu được khóa công khai : 

, khóa bí mật: .
- Gửi khóa công khai : 

và khóa bí mật :  sang chương trình mô phỏng
chữ ký số.
 Xây dựng giao diện cho chƣơng trình mô phỏng nhƣ sau :


Hình 3.2. Giao diện chƣơng trình sinh khóa Elgamal.
3.3. Xây dựng chƣơng trình mô phỏng chữ ký số.
 Đặt vấn đề : Vào một đoạn văn bản bất kỳ, thực hiện ký số cho văn bản và gửi
đi. Phía nhận sẽ kiểm tra tính xác thực chữ ký.
 Ý tƣởng xây dựng chƣơng trình :
- Nhập một đoạn văn bản bất kỳ.
23

- Thực hiện băm theo thuật toán cho trước để tạo ra tóm lược cho đoạn văn bản
đã nhập, thực hiện băm tạo ra bản băm 64bits(có độ dài vừa phải để có thể phù
hợp với máy tính cá nhân và tạo ra khả năng tính toán nhanh hơn).
- Thực hiện ký số bằng hệ mật elgamal dùng khóa bí mật. Thực hiện chia bản
băm 64bits thành 8 đoạn mỗi đoạn 8bits, tiến hành mã hóa từng 8bit một tạo ra
hiệu quả tính toán nhanh. Sau khi tính toán xong thì ghép lại để thu được chữ
ký.
- Gửi bản tin cùng với chữ ký cho phía nhận.
- Phía nhận thực hiện băm văn bản nhận được với cùng thuật toán băm với phía
gửi.
- Giải mã chữ ký số với khóa công khai với cùng cách sử lý 8bits/đoạn như phần
xử lý ký
- Tính toán để tiến hành xác thực chữ ký.
 Xây dựng giao diện chƣơng trình mô phỏng nhƣ sau :

Hình 3.3. Chƣơng trình mô phỏng chữ ký số dung Elgamal.
3.4. Kết luận chƣơng.
Trong chương này đã đi phân tích các yêu cầu xây dựng chương trình mô
phỏng từ đó đưa ra các ý tưởng xây dựng chương trình và tìm các thuật toán phù hợp
để xây dựng chương trình mô phỏng. Trong quá trình xây dựng chương trình mô
phỏng đã chú ý đến việc tính toán xử lí nhanh các chương trình mã hóa, giải mã, tạo
bản băm để có thể đảm bảo chương chình có thể chạy với tốc độ nhanh và phù hợp với

các thiết bị máy tính có cấu hình thấp.

×