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

Ứng dụng MAPLE trong an toàn thông tin với mật mã khóa công khai

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 (290.28 KB, 11 trang )



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






Lê Thị Nguyệt



ỨNG DỤNG MAPLE TRONG AN TOÀN THÔNG TIN VỚI MẬT MÃ KHÓA
CÔNG KHAI


Chuyên ngành: Kỹ thuật điện tử
Mã số: 60.52.70



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



HÀ NỘI – NĂM 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: GS.TS Nguyễn Bình


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














1


BẢNG TÓM TẮT LUẬN VĂN


ỨNG DỤNG MAPLE TRONG AN TOÀN THÔNG TIN VỚI MẬT MÃ KHÓA
CÔNG KHAI

MỞ ĐẦU

Các hệ mã công khai như ELGAMAL, ELIPTIC thực hiện tính toán với các số
nguyên lớn hàng trăm chữ số. Độ phức tạp trong việc giải mã các hệ mã này tỉ lệ thuận với
độ lớn của các số nguyên tham gia vào việc tạo khóa mã hóa và khóa công khai. Do đó để
hệ mã an toàn, cần tăng kích thước của các số nguyên.
Mặt khác, khi kích thước của các số nguyên cần xử lý lớn thì thời gian xử lý của
chương trình m
ã hóa cũng tăng lên.
Thông tin cần mã hóa ngày càng đa dạng và có khối lượng lớn, đòi hỏi hệ mã giảm
thiểu thời gian xử lý.
Các công cụ và giải thuật nhằm bẻ khóa các hệ mật mã được cải tiến đòi hỏi hệ mã
cần được nâng cấp tính bảo mật.
Tuy nhiên, việc nghiên cứu và triển khai các nâng cấp trong việc tối ưu hóa về mặt
thuật toán bằng ngôn ngữ lập trình mạnh của các hệ m
ã còn hạn chế.
Để hỗ trợ giải quyết các vấn đề trên, đề tài này tập trung vào việc ứng dụng một số
thuật toán tối ưu trên ngôn ngữ lập trình bậc cao nhằm tăng hiệu quả các phép tính toán
thực hiện với số nguyên lớn.
Từ tính cấp thiết của vấn đề tối ưu hóa các hệ mã công khai, đồng thời đư
ợc sự
hướng dẫn và gợi ý của GS.TS Nguyễn Bình tôi đã chọn đề tài cho luận văn tốt nghiệp Cao
học ngành kỹ thuật điện tử là: “Ứng dụng Maple trong an toàn thông tin với mật mã khóa
công khai”. Cấu trúc đề tài gồm: Phần mở đầu; phần nội dung; phần kết luận; tài liệu tham
khảo;
Nội dung chính của đề tài:
- Chương 1: Tổng quan về hệ mật khóa công khai.
- Chương 2: Ngôn ngữ Maple và định hướng ứng dụng tr
ong an toàn thông tin.
- Chương 3: Ứng dụng Maple trong mật mã khóa công khai.
Trong suốt quá trình nghiên cứu, mặc dù đã hết sức cố gắng nhưng chắc chắn đề tài
không tránh khỏi những thiếu sót, rất mong quý thầy cô góp ý để đề tài được hoàn chỉnh

hơn.
2

Chương 1
TỔNG QUAN VỀ HỆ MẬT KHÓA CÔNG KHAI
1.1. Một số khái niệm cơ bản về mã hóa
1.1.1. Khái niệm chung về mật mã
Hệ mật mã hiện đại thường gồm 5 thành phần (P, C, K, E, D) trong đó:
P (Plaintext) tập hợp hữu hạn các bản rõ có thể (không gian các bản rõ).
C (Ciphertext) tập hợp hữu hạn các bản mã có thể (không gian các bản mã).
K (Key) tập hợp các bản khoá có thể.
E (Encrytion) tập hợp các qui tắc mã hoá có thể.
D (Decrytion) tập hợp các qui tắc giải mã có thể.
Nội dung cần m
ã hóa thể hiện dưới dạng bản rõ (P). Người gửi sử dụng qui tắc (E) và
khóa (K) mã hoá bản rõ (P), kết quả thu được gọi là bản mã E
k
(P) = C. Bản mã này được
gửi đi trên một đường truyền tới người nhận, sau khi nhận được bản mã (C) người nhận sử
dụng qui tắc (D) và khóa (K) giải mã nó để hiểu được nội dung thông điệp gốc D
k
(C) = P.
1.1.
2. Những yêu cầu đối với hệ mật mã hiện đại
Hệ mật mã hiện đại cần đảm bảo được hai yêu cầu sau:
- Đảm bảo tính bảo mật.
- Đảm bảo tính xác thực.
1.1.3 Các phương pháp mã hóa
1.1.3.1 Hệ thống mã hóa đối xứng
.

1.1.
3.2 Hệ thống mã hóa bất đối xứng
Hệ thống mã hóa bất đối xứng hay còn gọi là mã hóa với khóa công khai đã được
Martin Hellman, Ralph Merkle và Whitfield Diffie thuộc Đại học Stanford giới thiệu vào
năm 1976.
3

Hệ mã này được áp dụng các kết quả của toán học đã khắc phục được các hạn chế
của các phương pháp mã hóa khóa đối xứng. Phương pháp mã hóa bất đối xứng sử dụng hai
loại khóa trong cùng một cặp khóa: Khóa công khai (public key) được công bố rộng rãi và
sử dụng để mã hóa các thông điệp, khóa riêng (private key) chỉ do chủ thể nắm giữ và được
sử dụng để giải mã thông điệp đã được mã hóa bằng khóa công khai.

Bn mã

Bn r
õ
Mã hóa Gii mã
Bn r
õ



Khóa mã
Khóa
gii

Hình 1.
2 Sơ đồ hoạt động của mã hóa khóa bất đối xứng
Khi thực hiện mã hóa bất đối xứng, người A sử dụng khóa công khai do người B tạo

để mã hóa thông điệp và gửi cho người B. Do biết được khóa riêng nên B mới có thể giải
mã được thông điệp mà A đã mã hóa. Trong trường hợp bản mã bị một người thứ ba có
được, nếu chỉ kết hợp với thông tin về khóa công khai đã đư
ợc công bố, cũng rất khó có khả
năng giải mã được bản mã này trong khoảng thời gian chấp nhận được do không nắm được
khóa riêng của B.
Khóa công khai và khóa riêng có quan hệ toán học với nhau theo nghĩa từ khóa riêng
có thể tính toán để suy ra được khóa công khai, nhưng để từ khóa công khai suy ra khóa
riêng sẽ rất phức tạp vì số lượng phép tính toán là rất lớn dẫn đến thời gian thực hiện để giải
mã là không khả thi khi chiều dài của khóa đủ lớn.
Đây cũng là mấu chốt của vấn đề bảo mật và tấn công trong các hệ mã khóa công
khai. Đề tài này sẽ đề cập đến vấn đề a
n toàn của hệ mã công khai. Nghiên cứu đưa ra các
giải pháp hỗ trợ làm tăng tính an toàn của các hệ mã này bằng cách cố gắng áp dụng các
thuật toán xử lý nhanh với số lớn. Từ đó có thể tăng chiều dài của khóa mà vẫn đảm bảo yếu
tố thời gian m
ã hóa và giải mã chấp nhận được.
1.2. Cơ sở toán học của mật mã
1.2.1. Hàm phi Euler
1.2.2. Lý thuyết đồng dư thức
1.2.3. Không gian Z
n
4

1.2.4 Nhóm nhân Z
n
*
1.2.5 Thặng dư
1.2.6 Căn bậc hai Modulo
1.2.7 Các thuật toán trong Z

n
1.2.8 Thuật toán kiểm tra tính nguyên tố
1.3 Giới thiệu về hệ mật với khó
a công khai
1.3.
1 Hệ mật khóa công khai RSA
1.3.
2. Hệ mật mã khóa công khai ELGAMAL
1.3.
2.1. Thuật toán tạo khoá
Tóm lược: Mỗi đầu liên lạc tạo một khoá công khai và một khoá bí mật tương ứng :
(1) Tạo 1 số nguyên tố p lớn và một phần tử sinh

của nhóm nhân của các số
nguyên .
*
p
Z
pmod
(2) Chọn một số nguyê
n ngẫu nhiên a,
2
p
a1



và tính pmod
a
. 

(3) Khoá công khai là bộ 3 số


a
,,p  , khoá bí mật là a.
1.3.2.2. Thuật Toán Mã Hoá Khóa Công Khai ElGamal
Tóm lược: B mã hoá một thông tin báo m để gửi cho A bản mã cần gửi.
Mã hoá: B phải thực hiện các bước sau:
(1) Nhận khoá công khai


a
,,p  của A.
(2) Biểu thị bản tin dưới dạng một số nguyên m trong dải


1p, . ,1,0 
(3) Chọn số nguyê
n ngẫu nhiên k,
2pk1



.
(4) Tính
pmod
k
và 



pmodm
k
a
 .
(5) Gửi bản mã

 ,c cho A.
Giải mã: Để khôi phục bản rõ m từ c, A phải thực hiện các bước sau:
(1) Sử dụng khoá riêng a để tính
pmod
a
(Chú ý
aka
).
1p 

a1p 

(2) Khôi phục bản r
õ bằng cách tính


pmod
a


.
1.3.3. Hệ mật mã khóa công khai trên đường cong Elliptic



5

Chương 2
NGÔN NGỮ MAPLE VÀ ĐỊNH HƯỚNG ỨNG DỤNG TRONG AN TOÀN THÔNG
TIN
2.1. Giới thiệu phần mềm Maple
2.1.1. Giới thiệu chung
Maple ra đời vào khoảng năm 1980, đến nay đã phát triển đến phiên bản 15.x và vẫn không
ngừng phát triển. Maple có cách cài đặt đơn giản, chạy trên hầu hết các hệ điều hành, có cấu
trúc linh hoạt để sử dụng tối ưu cấu hình máy và đặc biệt có trình trợ giúp rất dễ sử dụng.
Maple có những đặc điểm nổi bật
sau:
- Tính toán số, tính toán ký hiệu nhanh và dễ hình dung, người sử dụng có thể vào
biểu thức toán học theo ký hiệu truyền thống. Có thể tạo ra giao diện người sử dụng;
- Dễ sử dụng, có thể tìm phần trợ giúp Help ngay trong chương trình hoặc trên
Internet;
- Có khả năng mở rộng: dễ dàng tích hợp chức năng xác định mới để tính toán những
ứng dụng đặc biệt;
- Được hầu hết các hệ điều hà
nh hỗ trợ ( MS Windows, Linux, Unix, Mac OS);
- Ngôn ngữ lập trình mạnh, dễ gỡ rối. Maple tích hợp ngôn ngữ lập trình dạng mệnh
lệnh tương tự với Pascal, nó cho phép các biến đổi trong phạm vi mềm dẻo. Maple cũng có
giao diện cho các ngôn ngữ khác như C, C#, Fortran, Java, Matlap, Visual Basic. Nó cũng
có giao diện với Excel;
- Có thể mở rộng thư viện các hàm toán học và các gói đặc biệt; Có hai giao diện
tương tác là dòng lệnh và m
ôi trường đồ thị.
Những phần chính của Maple: Maple gồm có 3 phần, đó là giao diện, nhân (bộ phận
tính toán cơ bản) và thư viện. Giao diện và nhân lập nên một phần nhỏ của hệ thống, chúng
được viết bằng ngôn ngữ lập trình C và được tải đến khi phiên Maple bắt đầu.

Giao diện nhận đầu vào của các biểu thức toán học, hiển thị đầu ra, vẽ đồ thị của các
hàm
số và hỗ trợ người sử dụng trong những liện lạc khác với hệ thống. Môi trường giao
diện là các trang làm việc Maple. Trang làm việc Maple là một tài liệu mềm dẻo để khai
thác các ý tưởng toán học và để tạo ra các báo cáo kỹ thuật phức tạp. Có thể tiếp cận đến
sức mạnh của bộ máy tính toán Maple thông qua nhiều giao diện người sử dụng như: trang
làm việc chuẩn, phiên bản dòng lệnh, trang là
m việc cổ điển, và các ứng dụng Maple khách
6

thể hóa. Hệ thống Maple đầy đủ luôn sẵn sàng thông qua tất cả các giao diện này. Các giao
diện chuẩn và giao diện tính toán được viết bằng Java, còn giao diện cổ điển được viết bằng
C
Nhân giải thích đầu vào của người sử dụng, thực hiện các phép toán đại số và giải
quyết vấn đề quản lý lưu trữ.
Thư viện gồm hai phần là thư viện cơ bản và tuyển tập c
ác gói. Thư viện cơ bản gồm
nhiều hàm mà ở đó có hầu hết các kiến thức toán học phổ biến của Maple và chúng được
mã hóa bằng ngôn ngữ Maple. Mỗi gói chứa những lệnh đặc biệt để thực hiện những nhiệm
vụ riêng khác nhau, từ những tính toán của sinh viên đến lý thuyết tương đối tổng quát. Hầu
hết các chức năng của Maple được thực hiện bởi các thư viện số NAG, các t
hư viện ATLAS
hoặc các thư viện GMP. Hầu hết các thư viện được viết bằng ngôn ngữ Maple và trong
trường hợp này, có thể xem mã nguồn mở của chúng.
2.1.2. Những hiểu biết trước khi vận dụng Mapple
2.2. Các ký hiệu và phép toán trên Maple
2.2.1. Các ký hiệu phép toán số học, logic, quan hệ
2.2.2. Các hằng số, hàm số
2.2.3. Các thủ tục và Module
2.3. Các đầu vào và đầu ra

2.3.1. Đọc tệp
2.3.2. Ghi dữ liệu lên tệp
2.3.
3. Xuất các Worksheets
2.4. Những nội dung Maple dùng nhiều trong mật mã
2.4.1. Các cấu trúc đại số
2.4.2. Các gói thống kê
Chương 3
ỨNG DỤNG MAPLE TRONG MẬT MÃ KHÓA CÔNG KHAI
Trong chương 1, phần 1.3 ta đã nói một cách xúc tích nhất về mặt lý thuyết của hệ
mật Elgamal cũng như hệ mật trên đường cong Elliptic, đã đưa ra các bước của thuật toán
tạo khóa, mã hóa và giải mã. Sang đến chương 2 với cách trình bày ngắn gọn nhất về phần
mềm Maple cũng đã đưa ra những hàm
hay sử dụng của ngôn ngữ Maple về mật mã và toán
7

học. Trong chương 3, với cơ sở lý thuyết của chương 1 và chương 2 sẽ thiết lập các thuật
toán đó trong ngôn ngữ Maple với hai hệ là hệ ELGAMAL và hệ mật trên đường công
ELLIPTIC.
3.1. Sử dụng hệ mật ELGAMAL
3.1.1. Thuật toán tạo khóa
* Chương trình tìm số nguyên tố
* Chương trình tìm phần tử sinh
* Chương trình tìm số mũ bí mật a
* Chương trình tìm khóa công khai
3.1.2. Thuật toán mã hóa
3.1.3. Thuật toán giải mã
3.2. Sử dụng hệ mật trên đường cong Elliptic
Định nghĩa: cho p > 3 là số nguyên tố. Đường cong elliptic E (Z
p

): y
2
= x
3
+ ax +b
trên Z
p
là tập các nghiêm (x,y) ϵ Z
p
xZ
p
của đồng dư thức y
2
≡ x
3
+ax+b (mod p). Trong đó:
a,b ϵ Z
p
là các hằng số thỏa mãn 4a
3
+ 27b mod p cùng với điểm đặc biệt O được gọi là
điểm vô hạn.
Các điểm trên đường cong elliptic có thể trở thành nhóm Abel với việc xác định phép
toán thích hợp trên các điểm của nó.
Ta xét trường hợp đường cong elliptic E được xác định trên Z
p
.
Giả sử



11
y,xP 
,


22
y,xQ 
là các điểm trong nhóm


b,aE
p
, O là điểm vô cực.
Các quy tắc đối với phép cộng trên nhóm con


b,aE
p
như sau:
(1) P + O = O + P = P.
(2) Nếu và tức là
12
xx 
12
yy 


11
y,xP







Py,xy,xQ
1122





thì P + Q = 0.
(3) Nếu
PQ

 thì tổng


33
y,xQP


được cho bởi:

pmodyxxy
pmodxxx
131
3
21

23



Trong đó:
8














QP
y
ax
xx
yy
khi
QP khi
1
2
1

12
12
2
3


* Chương trình thực hiện phép cộng điểm
* Chương trình thực hiện tính 2*P:
* Chương trình thực hiện tính k*P:
* Chương trình liệt kê các điểm của đường cong elliptic
* Chương trình tín bậc của một điểm
* Sơ đồ trao đổi khóa
KẾT LUẬN
Các kết quả đạt được
Đề tài bước đầu đưa ra giải pháp để xử lý các phép toán số học với số lớn trong các
hệ m
ã công khai dựa trên cơ sở toán học và tính toán độ an toàn của các hệ mã công khai.
Các kết quả nghiên cứu và ứng dụng bước đầu đã thực hiện được mục đích của đề
tài. Bằng việc tối ưu hóa các phép xử lý tính toán phức tạp trong hệ mã công khai và minh
chứng trong hệ mã cụ thể như hệ Elgamal và hệ mật trên đường cong Elliptic.
Chương trình hoàn thiện cần có sự đầu tư nhiều hơn về mặt thời gian và công sức. Đề
tài có thể tiếp tục phát triển để đem lại ứng dụng đáp ứng được yêu cầu thực tế.
Hướng
phát triển đề tài
Các kết quả của đề tài có thể được áp dụng trong nhiều hệ mã công khai khác nhau và
tiếp tục được cải tiến để có được tốc độ thực thi tốt hơn.
Các kết quả có thể được áp dụng trên nhiều hệ thống bảo mật, thực hiện trong các giao
dịch trên mạng, thực hiện tạo và xác thực chữ ký điện tử bằng ngôn ngữ lập trình mạnh.
Tác giả m
ong muốn có thể tiếp tục phát triển để đưa các kết quả đã nghiên cứu vào

ứng dụng trong thực tế.




9





×