Tải bản đầy đủ (.docx) (38 trang)

XÂY DỰNG CHƯƠNG TRÌNH MÃ HÓA VÀ GIẢI MÃ ELGAMAL

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.63 MB, 38 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
---------------------------------------

BÀI TẬP LỚN
MƠN AN TỒN VÀ BẢO MẬT THƠNG TIN

XÂY DỰNG CHƯƠNG TRÌNH MÃ HĨA VÀ
GIẢI MÃ ELGAMAL

CBHD:

ThS. Trần Phương Nhung

Lớp:

20222IT6001008
6

Nhóm:
Thành viên:


Hà Nội – 2022

MỤC LỤC
MỤC LỤC HÌNH ẢNH

4

LỜI MỞ ĐẦU



5

CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

6

1.1

Giới thiệu về hệ mật mã

6

1.2

Khóa

7

1.2.1

Độ dài khóa

7

1.2.2

Quản lý khóa cơng khai


8

1.2.3

Chứng nhận khố cơng khai

1.2.4

Quản lý khóa phân phối

8 PAGE
\*
8 âjajaja
MERG
9 EFOR
MAT 4
9

1.3

Các hệ mật mã

1.4

Hệ mật mã công khai

1.5

Thám mã


10

1.6

Giới thiệu chung về hệ mật mã Elgamal

11

1.7

Ưu và nhược điểm của hệ mật mã Elgamal

12

1.7.1

Ưu điểm

12

1.7.2

Nhược điểm

12

1.8

Tính an tồn của hệ mật mã ElGamal


CHƯƠNG 2.
2.1

12

KẾT QUẢ NGHIÊN CỨU

Giới thiệu

13
13

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


2.2

- Kết quả đạt được: Nghiên cứu, Cài đặt demo thuật tốn Nội dung

thuật tốn

13

2.3

14

Thiết kế, cài đặt chương trình đề mơ thuật tốn


2.3.1
2.4

Giao diện chương trình đề mơ

14

Cài đặt và triển khai

15

2.4.1

Giới thiệu công cụ

15

2.4.2

Hướng dẫn cài đặt và chạy chương trình demo

16

2.5

Thực hiện bài tốn

19


2.5.1

Phân cơng cơng việc

19

2.5.2

Nguyễn Văn Mạnh – phân cơng cơng việc

20

2.5.3

Nguyễn Đình Mạnh – phân công công việc

20

2.5.4

Nông Tiến Mạnh – phân công công việc

3.1.1

Các kiến thức đã học được thông qua thực hiện bài tập lớn

22

3.1.2


Các kỹ năng đã học được thông qua thực hiện bài tập lớn

22

3.1.3

Những bài học kinh nghiệm được rút ra sau khi kết thúc bài tập

lớn

23

PAGE
20 \*
âjajaja
2.5.5
Bùi Hải Long – phân công công việc
21 MERG
EFOR
CHƯƠNG 3.
KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM 22
MAT 4
3.1 Nội dung đã thực hiện
22

3.2

Hướng phát triển

23


3.2.1

Tính khả thi của chủ đề nghiên cứu

23

3.2.2

Những thuận lợi, khó khăn trong q trình nghiên cứu

23

3.2.3

Hướng phát triển và mở rộng của đề tài

24

TÀI LIỆU THAM KHẢO

26

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


PAGE
\*
âjajaja

MERG
EFOR
MAT 4

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


• MỤC LỤC HÌNH ẢNH
Hình 1. Q trình mã hóa và giải mã.

6

Hình 2. Giao diện đề mơ với ngơn ngữ C#

14

Hình 3. Chạy chương trình demo với ngơn ngữ C# (1)

17

Hình 4. Chạy chương trình demo với ngơn ngữ C# (2)

18

Hình 5. Chạy chương trình demo với ngơn ngữ C# (3)

18

Hình 6. Kết quả chương trình đề mơ với ngôn ngữ C#


19

PAGE
\*
âjajaja
MERG
EFOR
MAT 4

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


• LỜI MỞ ĐẦU
Ngay từ thuở sơ khai của lịch sử, vấn đề bảo mật và mã hóa thơng tin đã
tồn tại và được nghiên cứu suốt chiều dài văn minh nhân loại. Từ xa xưa,
trước cả sự tồn tại của những khái niệm về máy tính sơ khai nhất, con người
đã sáng tao ra các hệ mật mã cổ điển với bút và giấy, thậm chí là hỗ trợ từ
những dụng cụ cơ khí đơn giản.
Vào đầu thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng
hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn
cho việc mật mã hóa. Sự ra đời và phát triển mạnh mẽ của ngành điện tử và
máy tính, cũng như vai trò ngày càng quan trọng của chúng trong đời sống
cũng như nền văn minh làm bùng nổ tầm quan trọng của việc bảo mật và mã
hóa thơng tin, nhờ đó tạo điều kiện để mật mã học có một bước nhảy vọt lớn. PAGE
Nhờ sự trợ giúp của máy tính, rất nhiều hệ mật mã hiện đại đã ra đời dựa trên \*
âjajaja
cơ sở đại số Modulo và các thuật toán logarit rời rạc, đều là những hệ mật mã MERG
có tính bảo mật cao vượt trội. Một trong số các hệ mật mã hiện đại phổ biến EFOR

MAT 4
nhất vẫn được sử dụng cho đến ngày hơm nay chính là hệ mã hóa Elgamal.
Dựa trên sự hướng dẫn của giảng viên - ThS. Trần Phương Nhung, các
thành viên trong nhóm đã tiến hành tìm hiểu về các thuật tốn mã hóa và giải
mã Elgamal. Bên cạnh đó nhóm chúng em đã tiến hành xây dựng các chương
trình demo hệ mã hóa Elgamal bằng nhiều ngơn ngữ khác nhau. Trong suốt
q trình hồn thiện bài tập lớn, nhóm chúng em đã cố gắng tuy nhiên khơng
thể tránh khỏi sai sót nên chúng em rất mong nhận được sự góp ý từ phía cơ
để bài tập lớn của nhóm được hồn thiện hơn.

Chúng em xin chân thành cảm ơn!

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về hệ mật mã
Để đảm bảo việc truyền tin an toàn và kiểm tra tính tồn vẹn của thơng
tin, người ta thường mã hóa thơng tin trước khi truyền đi bằng các một số các
hệ mật như DES, Triple DES (3DES), RC4, AES, RSA, Rabin, DiffleHellman, Elgamal, ... Một hệ thống mật mã là một hệ bao gồm 5 thành phần
(P, C, K, E, D) thỏa mãn các tính chất:
● P (Plaintext) là tập hợp hữu hạn các bản rõ có thể (hay cịn gọi là khơng
gian bản rõ).
● C (Ciphertext) là tập hợp hữu hạn các bản mã có thể (hay cịn gọi là
khơng gian bản mã).
PAGE

\*
âjajaja
khóa).
MERG
● E (Encryption) là tập hợp các quy tắc mã hóa có thể (hay cịn gọi là
EFOR
MAT 4
khơng gian các hàm mã hóa).
● K (Key) là tập hợp các bản khóa có thể (hay cịn gọi là không gian

● D (Decryption) là tập hợp các quy tắc giải mã có thể (hay cịn gọi là
khơng gian các hàm giải mã)
Q trình mã hóa được tiến hành bằng cách áp dụng hàm tóan học E lên
thơng tin P để trở thành thơng tin đã mã hóa C.
Quá trình giải mã được tiến hành ngược lại: áp dụng hàm D lên thông tin
C để được thông tin đã giải mã.

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


Hình 1. Q trình mã hóa và giải mã.

1.2 Khóa
1.2.1

Độ dài khóa

Độ an tồn của thuật tốn mã hố cổ điển phụ thuộc vào hai điều đó là
độ dài của thuật toán và độ dài của khoá. Nhưng độ dài của khoá dễ bị lộ hơn.

Giả sử rằng độ dài của thuật tốn là lý tưởng, khó khăn lớn lao này có thể đạt
được trong thực hành. Hồn tồn có nghĩa là khơng có cách nào bẻ gãy được
PAGE
\*
8
56
2 = 256 khố có thể. Nếu khố dài 56 bits, thì có 2 khố có thể. Giả sử rằng âjajaja
MERG
siêu máy tính có thể thực hiện 1 triệu phép tính một giây, nó cũng sẽ cần tới
EFOR
2000 năm để tìm ra khố thích hợp. Nếu khố dài 64 bits, thì với máy tính MAT 4
hệ thống mã hố trừ khi cố gắng thử với mỗi khoá. Nếu khoá dài 8 bits thì có

tương tự cũng cần tới xấp xỉ 600,000 năm để tìm ra khố trong số 2 64 khố có
thể. Nếu khố dài 128 bits, nó cần tới 10 25 năm , trong khi vũ trụ của chúng
ta chỉ tồn tại cỡ 1010 năm. Như vậy với 1025 năm có thể là đủ dài. Trước khi
bạn gửi đi phát minh hệ mã hoá với 8 Kbyte độ dài khoá, bạn nên nhớ rằng
một nửa khác cũng không kém phần quan trọng đó là thuật tốn phải an tồn
nghĩa là khơng có cách nào bẻ gãy trừ khi tìm được khóa thích hợp. Điều này
khơng dễ dàng nhìn thấy được, hệ thống mã hố nó như một nghệ thuật huyền
ảo. Một điểm quan trọng khác là độ an toàn của hệ thống mã hố nên phụ
thuộc vào khố, khơng nên phụ thuộc vào chi tiết của thuật toán. Nếu độ dài
của hệ thống mã hoá mới tin rằng trong thực tế kẻ tấn công không thể biết nội
dung bên trong của thuật tốn. Nếu bạn tin rằng giữ bí mật nội dung của thuật
Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


tốn, tận dụng độ an tồn của hệ thống hơn là phân tích những lý thuyết sở
hữu chung thì bạn đã nhầm. Và thật ngây thơ hơn khi nghĩ rằng một ai đó

khơng thể gỡ tung mã nguồn của bạn hoặc đảo ngược lại thuật toán.
Giả sử rằng một vài kẻ thám mã có thể biết hết tất cả chi tiết về thuật
tốn của bạn. Giả sử rằng họ có rất nhiều bản mã, như họ mong muốn. Giả sử
họ có một khối lượng bản rõ tấn cơng với rất nhiều dữ liệu cần thiết. Thậm
chí giả sử rằng họ có thể lựa chọn bản rõ tấn cơng. Nếu như hệ thống mã hố
của có thể

dư thừa độ an tồn trong tất cả mọi mặt, thì bạn đã có đủ độ an

tồn bạn cần.

1.2.2

Quản lý khóa cơng khai

Trong thực tế, quản lý khóa là vấn đề khó nhất của an tồn hệ mã hóa.
Để thực hiện thiết kế an tồn thuật tốn mã hóa là một việc là khơng phải dễ

PAGE
dàng nhưng để tạo và lưu trữ khóa bí mật là một điều khó hơn. Kẻ thám mã \*
thường tấn cơng cả hai hệ mã hóa đối xứng và cơng khai qua hệ quản lý khóa âjajaja
MERG
của chúng. Đối với hệ mã hóa cơng khai việc quản lý khóa dễ hơn đối với hệ EFOR
mã hóa đối xứng, nhưng nó có vấn đề riêng duy nhất mỗi người chỉ có một MAT 4
khóa cơng khai, bất kể số người ở trên mạng là bao nhiêu.

1.2.3

Chứng nhận khố cơng khai


Chứng nhận khố cơng khai là xác định khố thuộc về một ai đó, được
quản lý bởi một người đáng tin cậy. Chứng nhận để sử dụng vào việc cản trở
sự cố gắng thay thế một khố này bằng một khố khác.
Nó lưu trữ thông tin về Bob như tên, địa chỉ... và nó được viết bởi ai đó
mà Eva tin tưởng, người đó thường gọi là CA (certifying authority). Bằng
cách xác nhận cả khố và thơng tin về Bob. CA xác nhận thơng tin về Bob là
đúng và khố cơng khai thuộc quyền sở hữu của Bob. Eva kiểm tra lại các dấu

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


hiệu và sau đó cơ ấy có thể sử dụng khố cơng khai, sự an tồn cho Bob và
khơng một ai khác biết.

1.2.4

Quản lý khóa phân phối

Trong một vài trường hợp, trung tâm quản lý khố có thể khơng làm
việc. Có lẽ khơng có một CA (certifying authority) nào mà Eva và Bob tin
tưởng. Có lẽ họ chỉ tin tưởng bạn bè thân thiết hoặc họ không tin tưởng bất cứ
ai. Quản lý khoá phân phối, sử dụng trong những chương trình miền cơng
khai, giải quyết vấn đề này với người giới thiệu (introducers). Người giới
thiệu là một trong những người dùng khác của hệ thống anh ta là người nhận
ra khố cơng khai của bạn anh ta.

1.3 Các hệ mật mã
PAGE
\*

• Hệ mật mã đối xứng (hay cịn gọi là hệ mật mã khóa bí mật): là những âjajaja
hệ mật dùng chung một khóa cả trong q trình mã hóa và giải mã MERG
EFOR
thơng tin. Do đó khóa phải được giữ bí mật tuyệt đối. Một sổ thuật tốn MAT 4

Hệ mật mã gồm 2 loại:

nổi tiếng trong mã hóa đối xứng là: DES, Triple DES(3DES), RC4,
AES, ...
• Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa cơng khai): Các
hệ mật này dùng một khóa để mã hóa sau đó dùng một khóa khác để
giải mã, nghĩa là khóa để mã hóa và khóa để giải mã là khác nhau.
Các khóa này tạo nên từng cặp chuyển đổi ngược nhau và khơng có khóa
nào có thể suy được ra khóa cịn lại. Khóa dùng để mã hóa có thể cơng khai
nhưng khóa dùng để giải mã thì giữ bí mật. Do đó trong thuật tốn này có hai
loại khóa: khóa dùng để mã hóa được gọi là khóa cơng khai-Public Key cịn
khóa để giải mã được gọi là khóa bí mật Private Key. Một số thuật tốn mã
hóa cơng khai nổi tiếng: DiffleHellman, Elgamal, RSA, Rabin...
Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


1.4 Hệ mật mã công khai
Hệ mật mã công khai là bước tiến lớn của ngành mật mã. Hệ mật mã ra
đời đã phá bỏ tư duy cũ về mật mã, đồng thời có nhiều ứng dụng to lớn như:
phân phối khóa, chữ ký số v.v... Mặc dù giải quyết được điểm yếu logic của
hệ mật mã khóa đối xứng nhưng hệ mật mã khóa cơng khai (bất đối xứng)
đồng thời biến điểm mạnh của hệ mật mã khóa bí mật thành điểm yếu của
mình. Hệ khóa cơng khai tính toán chậm do liên tục xử lý các số lớn (ở RSA
là tính tốn với số ngun tố lớn). Để đảm bảo tính an tồn của hệ mật mã

RSA. Một quy luật tự nhiên là yếu ở đâu thì ta khắc phục ở đó. Để giảm thời
gian tính tốn của hệ mật mã khóa cơng khai, ta đang cố gắng thực hiện Giảm
độ dài khóa đồng thời vẫn giữ được tính an tồn của hệ mật mã. Đây chính là
xu thế của mật mã học hiện nay.
Xuất phát từ mong muốn tìm hiểu, tạo nên một chương trình demo mã PAGE
\*
hóa và giải mã thơng tin và lợi ích mà việc mã hóa mang lại như trên cùng với âjajaja
yêu cầu bài tập lớn của mơn an tồn và bảo mật thơng tin nên nhóm 14 chúng MERG
EFOR
em đã lựa chọn tìm hiểu về hệ mã hóa cơng khai (hệ mật mã bất đối xứng) MAT 4
RSA với mục đích hiểu rõ phương pháp, cách thức thực hiện mã hóa, giải mã
và các thuật tốn dùng để mã hóa và giải mã thơng tin. Qua đó ta có thể thấy
được tầm quan trọng của hệ mã hóa cơng khai RSA đối với việc truyền tin an
tồn và kiểm tra tính tồn vẹn của thơng tin.

1.5 Thám mã
Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc khơng an
tồn trong phương thức mật mã hóa. Thám mã có thể được thực hiện bởi
những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết
kế ra hệ thống với ý định đánh giá độ an toàn của hệ thống.

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


Có rất nhiều loại hình tấn cơng thám mã, và chúng có thể được phân loại
theo nhiều cách khác nhau. Một trong những đặc điểm liên quan là những
người tấn cơng có thể biết và làm những gì để hiểu được thơng tin bí mật. Ví
dụ, những người thám mã chỉ truy cập được bản mã hay không? Hay anh ta
có biết hay đốn được một phần nào đó của bản rõ? Hoặc thậm chí: Anh ta có

chọn lựa các bản rõ ngẫu nhiên để mật mã hóa? Các kịch bản này tương ứng
với tấn công bản mã, tấn công biết bản rõ và tấn công chọn lựa bản rõ.
Trong khi công việc thám mã thuần túy sử dụng các điểm yếu trong các
thuật tốn mật mã hóa, những cuộc tấn công khác lại dựa trên sự thi hành,
được biết đến như là các tấn công kênh bên. Nếu người thám mã biết lượng
thời gian mà thuật toán cần để mã hóa một lượng bản rõ nào đó, anh ta có thể
sử dụng phương thức tấn cơng thời gian để phá mật mã. Người tấn cơng cũng
có thể nghiên cứu các mẫu và độ dài của thông điệp để rút ra các thơng tin PAGE
\*
hữu ích cho việc phá mã; điều này được biết đến như là thám mã lưu thơng.
âjajaja
Nếu như hệ thống mật mã sử dụng khóa xuất phát từ mật khẩu, MERG
EFOR
chúng có nguy cơ bị tấn cơng kiểu duyệt tồn bộ (brute force), vì kích
MAT 4
thước khơng đủ lớn cũng như thiếu tính ngẫu nhiên của các mật khẩu. Đây là
điểm yếu chung trong các hệ thống mật mã. Đối với các ứng dụng mạng,
giao thức thỏa thuận khóa chứng thực mật khẩu có thể giảm đi một số các
giới hạn của các mật khẩu. Đối với các ứng dụng độc lập, hoặc là các biện
pháp an toàn để lưu trữ các dữ liệu chứa mật khẩu và/hoặc các cụm từ kiểm
sốt truy cập thơng thường được gợi ý nên sử dụng.
Thám mã tuyến tính và Thám mã vi phân là các phương pháp chung cho
mật mã hóa khóa đối xứng. Khi mật mã hóa dựa vào các vấn đề tốn học như
độ khó NP, giống như trong trường hợp của thuật tốn khóa bất đối xứng,
các thuật tốn như phân tích ra thừa số ngun tố trở thành công cụ tiềm năng
cho thám mã.
Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001



Có 6 phương pháp chung để phân tích tấn cơng (Chỉ có bản mã; Biết bản
rõ; Lựa chọn bản rõ; Mô phỏng lựa chọn bản rõ; Lựa chọn bản mã; Lựa chọn
khóa). Mỗi phương pháp trong số chúng giả sử rằng kẻ thám mã hồn tồn có
hiểu biết về thuật toán mã hoá được sử dụng.

1.6 Giới thiệu chung về hệ mật mã Elgamal
-

Hệ elgamal là 1 hệ mật mã cơng khai.

-

Hệ elgamal dựa trên bài tốn logarit rời rạc. Tính an tồn của nó tùy

thuộc vào độ phức tạp của bài toán logarit.
Hệ Elgamal là 1 biến thể của sơ đồ phân phối khóa Diffie – Hellman,
được Tiến sĩ Taher Elgamal đưa ra năm 1985.
-

So với RSA, hệ Elgamal khơng có nhiều rắc rối về vấn đề bản quyền
PAGE
\*
âjajaja
MERG
EFOR
MAT 4

sử dụng.

1.7 Ưu và nhược điểm của hệ mật mã Elgamal

1.7.1

Ưu điểm

– Độ phức tạp của bài toán logirit lớn nên độ an toàn cao.
– Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ 1 bản tõ ta
có nhiều bản mã khác nhau.

1.7.2

Nhược điểm

– Tốc độ chậm (do phải xử lý số nguyên lớn).
– Dung lượng bộ nhớ dành cho việc lưu trữ khóa cũng lớn.

1.8 Tính an tồn của hệ mật mã ElGamal
Giả sử C có được bản mã, để giải mã được thì C phải đối mặt với bài
tốn sau:
Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


C phải tìm số a sao cho h ≡ g a (mod p) để có thể dùng phương pháp giải
mã như B đã làm; Hoặc C phải tìm số b sao cho y1 ≡ g b (mod p) để có thể
tính trực tiếp hb và từ đó tìm được r.
Cả hai cách tiếp cận nói trên đều địi hỏi C phải giải bài toán logarithm
rời rạc, là một bài toán khó, do đó ElGamal là hệ mã khóa tương đối an tồn.

PAGE
\*

âjajaja
MERG
EFOR
MAT 4

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


CHƯƠNG 2.

KẾT QUẢ NGHIÊN CỨU

2.1
2.2 Giới thiệu
– Tên đề tài nghiên cứu: Xây dựng chương trình mã hóa và giải mã
Elgamal.
– Các bước thực hiện triển khai đề tài bao gồm:
● Nghiên cứu nội dung các thuật toán.
● Thiết kế và cài đặt chương trình demo thuật tốn.
– Hình thức sản phẩm: Sản phẩm ứng dụng.

2.3- Kết quả đạt được: Nghiên cứu, Cài đặt demo thuật toán PAGE
\*
âjajaja
MERG
Bước 1: Tạo khóa
EFOR
- Cho p là một số nguyên tố sao cho bài toán logarit rời rạc trong Z p là MAT 4


Nội dung thuật tốn

khó giải.
- Chọn phần tử ngun thủy α ∈ Zp*.
- Chọn a ∈ {2, 3…, p-2} là khóa bí mật thứ nhất (Khóa người nhận, giải
mã)
- Tính β = αa mod p.
- Khi đó: Kpub = (p, α, β) gọi là khóa cơng khai, và Kpri = (a) là khóa bí
mật.
Bước 2: Xây dựng hàm mã hóa dữ liệu
- Chọn 1 số ngẫu nhiên bí mật k ∈ Zp-1, Ta xác định: k ∈ Zp-1 = {0,
1…, p-2}.
Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


- Định nghĩa: 𝑒𝐾𝑝(𝑥, 𝑘) = (𝑦1, 𝑦2) với 𝑦1 = 𝛼𝑘 𝑚𝑜𝑑 𝑝 và 𝑦2 = 𝑥𝛽𝑘 𝑚𝑜𝑑 𝑝.
Bước 3: Giải mã
- Với y1, y2 ∈ Zp* ta xác định: 𝑑𝐾𝑝(𝑦1 , 𝑦2) = 𝑦2(𝑦1𝑎 ) −1 𝑚𝑜𝑑 p.
A (gửi)

B (nhận)

Choose private key KpriA=αA

Choose private key KpriB=αB

Compute KpubA=αaA mod p = bA

KpubB= αaB mod p = bB


bB<==B A==> bA
kAB = bBaA = αaA*aB mod p

kAB = bAaB = αaB*aA mod p

y = x*kAB mod p

A==>y
x = y*kAB-1 mod p

PAGE
\*
2.4 Thiết kế, cài đặt chương trình đề mơ thuật tốn
âjajaja
MERG
2.4.1 Giao diện chương trình đề EFOR
MAT 4



A. Giao diện chương trình đề mơ với ngơn ngữ Javascript

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


Hình 2. Giao diện đề mơ với ngơn ngữ Javascript
B. Giao diện chương trình đề mơ với ngơn ngữ Java
PAGE

\*
âjajaja
MERG
EFOR
MAT 4

C. Giao diện chương trình đề mơ với ngơn ngữ Python

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


D. Giao diện chương trình đề mơ với ngơn ngữ C++

2.5 Cài đặt và triển khai
2.5.1

Giới thiệu công cụ

A. NetBean
NetBean là một mơi trường phát triển tích hợp (IDE) cho Java. NetBean
cho phép các ứng dụng được phát triển từ một tập hợp các thành phần phần
mềm được gọi là modules. Eclipse chạy trên Windows, macOS, Linux và
Solaris.
Giao diện dễ sử dụng vời người lập trình. Có đầy đủ các thư viện của
ngơn ngữ Java giúp người lập trình sử dụng các API một cách dễ dàng. Ngồi
ra NetBean còn hỗ trợ người lập trình dễ dàng thiết kế giao diện với thư viện
Java application.
♦ Ưu điểm của công cụ NetBean
Cách 1: Nhập trực tiếp vào text box

Nhóm 6 – IT6001

PAGE
\*
âjajaja
MERG
EFOR
MAT 4


– Nền tảng đa: có thể chạy trên cả Windows và Linux điều hành
– Không bị hạn chế về các nhà cung cấp công cụ, bao gồm tất cả các nhà
cung cấp phần mềm độc lập (ISV)
– Hỗ trợ sử dụng nhiều cơng cụ lập trình
– Tạo lợi ích cho tích hợp các mạch cơng cụ bên trong và xun qua
nhiều loại nội dung và các nhà cung cấp công cụ khác nhau.
– Hỗ trợ các công cụ thao tác lập trình ngơn ngữ như: HTML , Java, C,
….
– GUI môi trường hỗ trợ phát triển không dựa trên GUI.
– Tính biến phổ của ngơn ngữ Java (ngơn ngữ sử dụng để viết các công
cụ).
– Tải nhanh hơn sử dụng SWT / Jface
♦ Nhược điểm của công cụ NetBean

PAGE
\*
âjajaja
MERG
EFOR
MAT 4


– Cài đặt khá phức tạp, phần cứng và máy bộ nhớ
– Nhiều plugin đến quán nhất tính thiếu
B. Visual Studio
Microsoft Visual Studio là một mơi trường tích hợp (IDE) từ Microsoft.
Microsoft Visual Studio cịn được gọi là "Trình soạn thảo mã nhiều người sử
dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính. Nó được sử
dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như
các trang web, các ứng dụng web và các dịch vụ web.
Từ khi ra đời đến nay, Visual Studio đã có rất nhiều các phiên bản sử
dụng khác nhau. Điều đó, giúp cho người dùng có thể lựa chọn được phiên
bản tương thích với dịng máy của mình cũng như cấu hình sử dụng phù hợp
nhất.
Những điểm mạnh của Visual Studio:

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001


– Visual Studio hỗ trợ lập trình trên nhiều ngơn ngữ như: C/C++, C#, F#,
Visual Basic, HTML, CSS, JavaScript.
– Là một công cụ hỗ trợ việc Debug một cách dễ dàng và mạnh mẽ như:
Break Point, xem giá trị của biến trong quá trình chạy, hỗ trợ debug
từng câu lệnh.
– Giao diện Visual Studio rất dễ sử dụng đối với người mới bắt đầu lập
trình.
– Visual Studio hỗ trợ phát triển các ứng dụng: desktop MFC, Windows
Form, Universal App, ứng dụng mobile Windows Phone 8/8.1,
Windows 10…
– Visual Studio hỗ trợ xây dựng ứng dụng một cách chuyên nghiệp bằng

các công cụ kéo thả.
– Visual Studio được đơng đảo lập trình viên trên thế giới sử dụng.

A. Visual Studio (Javascript)

PAGE
2.5.2 Hướng dẫn cài đặt và chạy \*
âjajaja
MERG
chương trình demo
EFOR
MAT 4

Cài đặt Visual Studio
● B1: Truy cập trang để download bộ
cài Visual Studio.
● B2: Mở file sau khi đã tải thành công
● B3: Ấn theo hướng dẫn cài đặt của phần mềm
● B4: Thiết lập biến mơi trường, cài đặt gói hỗ trợ Javascript
● B5: Mở cơng cụ và hồn tất cài đặt
Chạy chương trình demo

Cách 1: Nhập trực tiếp vào text box
Nhóm 6 – IT6001



×