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

Bài tập lớn an toàn và bảo mật thông tin xây dựng chương trình mã hoá 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 (2.47 MB, 64 trang )

lOMoARcPSD|38594337

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

ĐỀ TÀI:
XÂY DỰNG CHƯƠNG TRÌNH MÃ HOÁ VÀ GIẢI MÃ

ELGAMAL

CBHD: ThS. Trần Phương Nhung
Lớp: 20222IT6001008
Nhóm: 13
Thành viên nhóm:

1. Phạm Anh Tuấn – 2020604057
2. Dương Văn Tùng - 2021607567
3. Nguyễn Viết Tùng - 2021604131
4. Lê Thiên Tuấn Vũ – 2020601530
5. Trần Xuân Vũ – 2021601795

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Hà Nội – 2023



MỤC LỤC
Lời nói đầu.............................................................................. 4
Chương 1: Tổng quan.............................................................5

1.1 Giới thiệu về an tồn thơng tin......................................5
1.2 Lý do chọn đề tài..........................................................6

1.2.1 Vai trò của hệ mật mã...........................................6
1.2.2 Khái niệm cơ bản...................................................6
1.2.3 Các thành phần của hệ mật mã.............................6
1.2.4 Phân loại hệ mật mã..............................................7
1.3 Giới thiệu về hệ mã Elgamal.........................................8
1.3.1 Giới thiệu chung về hệ mã Elgamal.......................8
1.3.2 Mã hoá và giải mã hệ mã Elgamal.........................8
1.3.3 Độ an toàn.............................................................9
1.3.4 Ưu và nhược điểm của hệ mã Elgamal................10
1.3.5 Tính an tồn của hệ mã Elgamal..........................10
Chương 2: Kết quả nghiên cứu..............................................12
2.1 Giới thiệu....................................................................12
2.2 Nội dung thuật toán....................................................12
2.2.1 Kiểm tra số nguyên tố.........................................12
2.2.2 Thuật tốn euclid tìm ước chung lớn nhất............13
2.2.3 Thuật tốn bình phương và nhân tính x^n mod m

14
2.2.4 Định lý Ferma nhỏ...............................................15
2.2.5 Hàm phi Euler......................................................16
2.2.6 Thuật tốn Euclid mở rộng tìm nghịch đảo..........16
2.2.7 Thuật tốn Baby-Step Giant-Step tìm phần tử sinh


17

2

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

2.2.8 Mã hoá và giải mã hệ mã Elgamal.......................18
2.3 Thiết kế, cài đặt chương trình đề mơ thuật tốn.........20

2.3.1 Giao diện chương trình đề mơ..............................20
2.4 Cài đặt và triển khai....................................................22

2.4.1 Chương trình mã hố và giải mã hệ mã Elgamal
bằng C#.........................................................................22
2.4.2 Chương trình mã hố và giải mã hệ Elgamal bằng
C++ 29
2.4.3 Chương trình mã hóa và giải mã hệ Elgamal bằng
Java 42
2.4.4 Chương trình mã hố và giải mã hệ Elgamal bằng
Python44
2.5 Thực hiện bài toán......................................................48
2.5.1 Phân công công việc............................................48
2.5.2 Phạm Anh Tuấn...................................................49
2.5.3 Lê Thiên Tuấn Vũ.................................................49
2.5.4 Trần Xuân Vũ.......................................................49

2.5.5 Dương Văn Tùng..................................................49
3 Phần kiến thức lĩnh hội và bài học kinh nghiệm..............50
3.3 Nội dung đã thực hiện.................................................50
3.4 Hướng phát triển.........................................................51
Kết luận................................................................................54
Tài liệu tham khảo................................................................55

3

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Lời nói đầu

Trước đây khi cơng nghệ máy tính chưa phát triển, khi
nói đến vấn đề an tồn bảo mật thơng tin, chúng ta thường
hay nghĩ đến các phương pháp nhằm đảm bảo cho thông tin
được trao đổi hay cất giữ một cách an tồn và bí mật, chẳng
hạn như các phương pháp: đóng dấu và ký niêm phong một
bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến
người nhận hay khơng, dùng mật mã hố thơng điệp để chi
có người gửi và người nhận hiểu được thông điệp, lưu giữ tài
liệu trong các két sắt có khố tại nơi được bảo vệ nghiêm
ngặt.

Ngày nay với sự phát triển của khoa học công nghệ, đặc
biệt là sự phát triển của Internet, việc sử dụng máy tính và

điện thoại cá nhân trở nên rộng rãi, dẫn dắt đến càng nhiều
thông tin được lưu trữ trên máy tính và gửi đi trên mạng
Internet. Do đó nhu cầu về an tồn và bảo mật thơng tin
trên máy tính càng nhiều và việc sử dụng mật mã mã hoá
càng được phổ biến. Trong thực tế các hacker, các dạng
virus luôn tấn công và là mối đe dọa của các nguồn tài
nguyên thông tin. Những vấn đề đảm bảo an tồn thơng tin
trong các hệ thống máy tính là rất quan trọng.

Hiểu được điều đó, nhóm chúng em đã thực hiện xây
dựng chương trình mã hóa và giải mã ELGAMAL. Từ những
kiến thức đã được học cùng với việc nghiên cứu các tài liệu
trên Internet, và nhất là nhờ sự hướng dẫn, chỉ bảo tận tình
của cơ Trần Phương Nhung, nhóm chúng em đã hoàn thành

4

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

đề tài này. Trong q trình hồn thành đề tài, chúng em cịn
gặp nhiều khó khăn, và sự hiểu biết của chúng em còn hạn
hẹp nên kết quả vẫn cịn nhiều thiếu sót.

Kính mong cơ nhận xét và đóng góp ý kiến để nhóm
chúng em có thẻ hồn thiện bài tập lớn này.


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

5

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Chương 1: Tổng quan

1.1 Giới thiệu về an tồn thơng tin
An tồn thơng tin là bảo vệ các đặc tính riêng tư

(con昀椀dentialy), tồn vẹn (intergrity) và khả dụng
(availabity) của thông tin.

- C: (Con昀椀dentialy) bảo vệ tính riêng tư của dữ liệu
thơng qua các cơ chế chứng thực và mã hóa, ngăn ngừa
những người không hợp lệ sẽ không được đọc những thông
tin. Giống như các bì thư khi phát lương thưởng được dán
chữ Con昀椀dentialy, chúng ta có thể hình dung trong môi
trường công nghệ thông tin là một người chưa đăng nhập
vào Domain sẽ không được truy cập những dữ liệu chỉ chia
sẻ cho các Domain User.

- I: (Intergrity) bảo vệ tính tồn vẹn của dữ liệu thông
qua các thuật toán RSA, SHA, MD5 ... ngăn ngừa attacker
thay đổi các thơng tin nhạy cảm trong q trình truyền.


- A: (Available) bảo đảm dữ liệu luôn ở trong trạng
thái sẵn sằng đáp ứng nhu cầu của người dùng.

- Non-Repudiation: Tính khơng thể chối bỏ, nghĩa là
dữ liệu người nào gửi đi thì họ phải có trách nhiệm với các
thơng tin của mình thơng qua các xác nhận nguồn gốc như
chữ kí điện tử.

Để đảm bảo việc truyền tin an tồ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

6

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Cơng Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

DES (3DES), RC4, AES, RSA, Rabin, Di昀툀e-Hellman,
Elgamal,...

Qua dự án lần này nhóm sinh viên chúng em đã đi sâu tìm
hiểu về xây dựng và phát triển mã hóa giải mã Elgammal ,
nắm được những kiến thức cơ bản

Trong phương pháp mã hóa và giải mã cũng như là các
thuật toán cần thiết bằng các ngôn ngữ như: C#, Java,

Python, C++...

1.2 Lý do chọn đề tài.
1.2.1 Vai trò của hệ mật mã

- Phải che giấu được nội dung của văn bản rõ (plaintext)
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin

lưu hành trong hệ thống đến người nhận hợp pháp là
xác thực
- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo k có hiện
tượng giả mạo, mạo danh để gửi thông tin lên mạng.

1.2.2 Khái niệm cơ bản

- Bản rõ X: được gọi là bản tin gốc, bản rõ có thể được
chia nhỏ có kích thước phù hợp.

- Bản mã Y: là bản tin gốc đã được mã hoá.
- Mã: là thuật toán mã hoá chuyển bản rõ thành bản mã,

thông thường chúng ta cần thuật toán mã hoá mạnh,
cho dù kẻ thù biết được thuật tốn, nhưng khơng biết
thơng tin về khố thì cũng khơng tìm được bản rỏ.

7

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337


Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Khố K: là thơng tin tham số dùng để mã hố, chỉ có
người gửi và người nhận biết. Khoá là độc lập với bản rõ
và có độ dài phù hợp với yêu cầu bảo mật.

- Mã hố: là q trình chuyển bản rõ thành bản mã.
- Giải mã: là quá trình chuyển bản mã thành bản rõ, đây

là q trình ngược lại của mã hố.
1.2.3 Các thành phần của hệ mật mã
Một hệ mật mã là một hệ bao gồm 5 thành phần (P, C, K,
E, D) thoả mãn:
● P (Plaintext): không gian bản rõ, là tập hợp hữu hạn

các bản rõ có thể.
● C (Ciphertext): không gian bản mã, là tập hợp những

bản mã có thể.
● K (Key): khơng gian khố, là tập hợp các khố có thể.

● E (Encryption): không gian hàm mã hoá, là tập hợp các
quy tắc mã hoá có thể.

● D (Decryption): không gian hàm giải mã, là tập hợp
các quy tắc giải mã có thể.

Đối với mỗi k thuộc K có một quy tắc mã hoá ek: P -> C
thuộc E và một quy tắc giải mã tương ứng dk: C -> P thuộc

D

8

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Hình 1.1: Quá trình mã hố và giải mã thơng tin

1.2.4 Phân loại hệ mật mã
- Hệ mật mã đối xứng: hay cịn gọi là mật mã khố bí

mật, là những hệ mật dùng chung một khó cả trong
quá trình mã hố và giải mã dữ liệu. Do đó khố phải
giữ bí mật tuyệt đối. Một số thuật tốn nổi tiếng như:
DES, Triple DES, RC4, …
- Hệ mật mã bất đối xứng (mật mã khoá công khai):
dùng một khố để mã hố sau đó dùng một khoá khác
để giải mã (2 khoá khác nhau). Các khoá này tạo nên
từng cặp chuyển đổi ngược nhau và khơng có khó nào
có thể suy được từ khố nào. Kháo đung để mã hố có
thể cơng khai, nhưng khố dùng để giải mã phải giữ bí
mật. Một số thuật toán nổi tiếng như: RSA, Elgamal, …
1.3 Giới thiệu về hệ mã Elgamal
1.3.1 Giới thiệu chung về hệ mã Elgamal
- Là một hệ mật mã công khai


9

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Dựa trên bài toán logarithm rời rạc. Tính an tồn của
nó phụ thuộc vào độ phức tạp của bài toán logarithm.

- Là một biến thể của sơ đồ phân khối khoá Di昀케e-
Hellman, được đưa ra năm 1984.

- So với hệ mã RSA, hệ mã Elgamal khơng có nhiều rắc
rối về vấn đề quyển sử dụng.

1.3.2 Mã hoá và giải mã hệ mã Elgamal
* Q trình mã hố và giải mã

Hình 1.2: Sơ đồ quá trình mã hố và giải mã hệ mã Elgamal

- Ban đầu người ta sẽ lựa chọn một số nguyên tố lớn p và
2 số nguyên tố nhỏ hơn p là alpha (phần tử nguyên thuỷ
của Z*p) và a (khố bí mật của người nhận) sau đó tính:
beta = alphaa mod p
Kpublic(p, alpha, beta),
Kprivate(a)
10


Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Để mã hố một thơng điệp M thành bản mã C, người gửi
chọn số ngẫu nhiên k (1 < k < p – 1) và tính cặp bản mã:
o C1 = alphak mod p
o C2 = (M * betak) mod p

Và gửi bản mã: C = (C1, C2) đi (sau đó k sẽ bị huỷ đi).
- Để giải mã thơng điệp M đầu tiên ta dùng khố bí mật a

và tính theo công thức:
o M = (C2 * (C1a)-1) mod p với (C1a)-1 mod p = (C1(p-1-
a)) mod p

* Bài toán logarithm rời rạc:
- Logarithm rời rạc là sự kết nối của phép tính logarithm

trên trường số thực vào các nhóm hữu hạn. Ta nhắc lại
rằng với hai số thực x, y và cơ số a > 0, a # 0, nếu ax – y
= 0 được gọi là logarithm cơ số a của y
ký kiệu: x = logay
- Logarithm rời rạc là bài tốn khó (chưa biết thuật toán
hiệu quả nào). Trong khi bài toán ngược luỹ thừa rời rạc
lại khơng khó (có thể sử dụng thuật tốn bình phương và
nhân)
1.3.3 Độ an toàn

- Hệ mã Elgamal dựa trên bài tốn logarithm rời rạc. Tính
an tồn của nó tuỳ thuộc vào độ phức tạp của bài toán
logarithm.
- Trong bài toán về hệ mã Elgamal:

o p là số nguyên tố, alpha là phần tử nguyên thuỷ của
Z*p

11

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

o Bài tốn logarithm rời rạc có thể được phát biểu
như sau: Tìm một số mũ a duy nhất (1 < x < p – 1)
sao cho beta = alphaa mod p, với y thuộc Z*p cho
trước.

o Bài tốn có thể giải được bởi phương pháp vét cạn
(tức là duyệt tất cả phần tử a) để tìm a thoả mãn.
Khi đó độ phức tạp là sẽ là O(p). Vấn đề đặt ra là
nêu p lớn, rất lớn thì để thực hiện phương pháp này
cần thời gian rất lớn -> không khả thi.

- Đánh giá độ an toàn của hệ mã Elgamal :
o Hệ mã Egamal áp dụng bài toán logarithm rời rạc,
chính vì vậy độ an toàn của hệ mã Elgamal là rất

lớn vì bài tốn logarith rời rạc chưa có phương pháp
hiệu quả để giải.
o Với một số nguyên tố p đủ lớn thì thuật toán
Elgamal khơng có phương pháp thám mã hiệu quả.

1.3.4 Ưu và nhược điểm của hệ mã Elgamal
- Ưu điểm:

o Độ phức tạp của bài toán logarithm rời rạc lớn nên
độ an toàn cao.

o Bản mã phụ thuộc vào bản rõ X và giá trị ngẫu
nhiên nên từ một bản rõ có thể có nhiều bản mã
khác nhau.

- Nhược điểm:
o Tốc độ chậm (do phải xử lý số nguyên lớn)
o Dung lượng bộ nhớ dành cho việc lưu trữ khoá yêu
cầu phải lớn.
12

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

o Việc sinh khố và quản lý khố cũng khó khăn hơn
các hệ mã khác (do sử dụng các số nguyên tố)


1.3.5 Tính an tồn của hệ 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 toán sau:
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 tốn khó, do đó ElGamal
là hệ mã khóa tương đối an tồn.

13

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Chương 2: Kết quả nghiên cứu

2.1 Giới thiệu
- Tên đề tài: “Xây dựng chương trình mã hố và giải mã

Elgamal.”
- Các bước thực hiện triển khai đề tài bao gồm:


o Nghiên cứu nội dung các thuật toán (Kiểm tra số
nguyên tố, Euclid tìm ước chung lớn nhất, Bình
phương và nhân tính x^n mod m, …)

o 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
- Kết quả đạt được: nghiên cứu, cài đặt đề mô thuật tốn.

- Thành viên xây dựng các chương trình ứng dụng web và
ứng dụng desktop trên nền các ngơn ngữ lập trình riêng
biệt:

Phạm Anh Ngơn ngữ lập trình
Tuấn Java

Trần Xn Vũ Ngơn ngữ lập trình
C++
Dương Văn
Tùng Ngôn ngữ lập trình
Python
Lê Thiên Tuấn
Vũ Ngôn ngữ lập trình
C#

14

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337


Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

2.2 Nội dung thuật toán
2.2.1 Kiểm tra số nguyên tố

- Bước 1: Kiểm tra xem số đó có nhỏ hơn 2 hay không, nếu
phải thì nó khơng phải là số ngun tố.

- Bước 2: Tìm căn bậc hai của số đó và làm trịn lên đến số
nguyên gần nhất. Chẳng hạn nếu số đó là 17 thì căn bậc
hai của nó là 4.12, lấy số nguyên là 5.

- Bước 3: Kiểm tra xem số đó có chia hết cho các số từ 2
đến căn bậc hai của số đó khơng. Nếu có, thì nó khơng
phải là số nguyên tố.

- Bước 4: Nếu khơng có số nào từ 2 đến căn bậc hai của số
đó chia hết cho nó, thì nó là số ngun tố.

Ví dụ: Để kiểm tra số 17 có phải là số nguyên tố không?

● 17 > 2, qua bước 1.

● Căn bậc hai của 17 là 4.12, lấy số nguyên là 4, qua
bước 2.

● Kiểm tra xem 17 có chia hết cho các số từ 2 đến 5
không. Nếu 17 không chia hết cho số nào, qua bước 3,
ngược lại thì 17 khơng phải là số ngun tố.


● Vậy 17 là số nguyên tố, qua bước 4.

2.2.2 Thuật tốn euclid tìm ước chung lớn nhất
- Thuật tốn Euclid tìm ước chung lớn nhất của hai số

nguyên không âm GCD(a, b)
o Nếu a = 0 thì GCD(a, b) = b return b
15

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

o Nếu b = 0 thì GCD(a, b) = a return a
o Nếu a # 0, b # 0. Giả sử A > B:

▪Viết a dưới dạng: a = q * b + r
▪Theo thuật tốn Euclid ta có:

GCD(a, b) = GCD(b, r) = GCD(b, a mod b)

Hình 2.2.2: demo thuật tốn Euclid tìm ước chung lớn nhất
của hai số

2.2.3 Thuật tốn bình phương và nhân tính x^n
mod m

- Giải thuật đệ quy: để tính luỹ thừa tự nhiên bậc n

của x như sau:
o Với n = 0 thì x^n = 1

Với n > 0 ta có cơng thức bình phương và nhân
f ( n)={( xk)2khi n chẵn ( xk )∗x khi n lẻ

Như vậy phép tính x^n được quy về một số phép
tính bình phương và nhân.

16

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Giải thuật không đệ quy:
o Nhận xét: trong giải thuật đệ quy, có xét tính
chẵn lẻ của n và liên tục chia n cho 2, lấy phần
nguyên đến khi n = 0. Thực chất quá trình này
chính là tìm các bit của n hay chính là thực hiện
chuyển đổi n sang số nhị phân sau đó tính luỹ
thừa theo quy tắc bình phương và nhân.

Hình 2.2.3: demo thuật tốn bình phương và nhân tính x^n
mod m

2.2.4 Định lý Ferma nhỏ
- Định lý Fermat được phát biểu như sau: Nếu p là số


nguyên tố và a là số nguyên bất kì khác bội của p (hay
GCD (a, p) = 1), ta có: ap-1 ≡ 1(mod p)
Ví dụ: a = 5, p = 3
Ta có: ap-1 mod p = 53-1 mod 3 = 52 mod 3= 25 mod 3 =
1 mod 3=1 (đpcm)

17

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Một dạng thay thế của định lý Fermat: Nếu p là số
nguyên tố, a là một số nguyên không là bội của p, ta
luôn có: ap ≡ a mod p
Ví dụ: a = 3, p = 5
Ta có: ap mod p = 35 mod 5 = 243 mod 5 = 3 mod 5 = 3
(đpcm)

Lưu ý: Công thức trên luôn đúng nếu p là số nguyên tố,
còn a là số nguyên dương bé hơn p.

2.2.5 Hàm phi Euler
- Định nghĩa : Hàm phi Euler của của số nguyên dương n là

số các số nguyên tố cùng nhau với n và nhỏ hơn n. Kí hiệu
là Φ(n)

Ví dụ: Cho n = 10. Tính Φ10=?
Tập đầy đủ các số nhỏ hơn n = 10 là {0,1,2,3,4,5,6,7,8,9}
Tập các số nguyên tố cùng nhau với n = 10 là {1,3,7,9}
có 4 số Vậy theo định nghĩa Φ10 = 4
- Tính chất :
● Tính chất 1 : Nếu n là số nguyên tố thì Φ(n) = n – 1

Ví dụ: Φ(7) =6
● Tính chất 2 : Nếu p, q là 2 số nguyên tố cùng nhau thì

Φ(p*q) = Φp * Φq
Ví dụ: Φ(26) = Φ(2*13) = Φ(2)* Φ(13)=1*12=12
● Tính chất 3 : Nếu p là số nguyên tố thì : Φ(pn) = pn - pn – 1
Ví dụ: Φ(23) = 23 - 23-1 = 23 - 22 = 8 – 4 = 4

18

Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Cơng Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

- Định lí Euler : Nếu a, m nguyên tố cùng nhau thì aΦ(m)
đồng dư với 1 theo mod m: aΦ(m) = 1 mod m

2.2.6 Thuật tốn Euclid mở rộng tìm nghịch
đảo

- Bổ đề bezout: cho 2 số nguyên r0, r1, tồn tại 2 số


nguyên khác s và t sao cho :

s.r0+t.r1 = gcd(r0,r1) khi đó t = r1-1 theo mod r0.

- Thuật tốn Euclid mở rộng tìm phần tử nghịch đảo cho 2
số nguyên r0 , r1. Tìm r-1 theo mod r0.

●Dùng thuật toán Euclid mở rộng để tim các số nguyên s
và t sao cho

s.r0+t.r1 = gcd(r0,r1) = d. (nếu d > 1 thì r-1 mod r0 tồn
tại. ngược lại d = 1 tồn tại)

Để tìm được s , t ta dùng công thức như sau:

s0 = 1 t0 = 0

s1 = 0 t1 = 1

si = s(i – 2) – q(i-1)*s(i-1) ti = t(i-2) – q(i-1)*t(i-1)

Trong đó ta có : với i = 0,1,2,3…

ri = qi+1 * ri+1+ri+2

Thuật toán dừng lại khi phần dư ri+2 = 0.

19


Downloaded by NGUYEN BAY ()

lOMoARcPSD|38594337

Trường đại học Công Nghiệp Hà Nội Nhóm 13 - ATBMTTGVHD: ThS. Trần Phương Nhung

Hình 2.2.6: Thuật tốn Euclid mở rộng tìm nghịch đảo
2.2.7 Thuật tốn Baby-Step Giant-Step tìm
phần tử sinh

- Bước 1: Tạo một số nguyên tố ngẫu nhiên p và một số
nguyên g thuộc Z*p và g được chọn sao p-1 có nhiều
thừa số nguyên tố khác nhau.

- Bước 2: Tìm kích thước của phần tử sinh bằng cách tính
phi(p-1), trong đó phi là hàm số Euler.

- Bước 3: tạo một danh sách các giá trị Baby-Step bằng
cách tính g^i mod p với i từ 0 đến (kích thước của phần
tử sinh – 1).

- Bước 4: tạo một danh sách các giá trị Giant-Step bằng
cách tính
g^(k *j) mod p với j từ 0 đến (kích thước của phần tử
20

Downloaded by NGUYEN BAY ()



×