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

Nghiên cứu một số thuật toán dùng 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 (570.82 KB, 69 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DUY TÂN

NGUYỄN THẾ VINH

NGHIÊN CỨU MỘT SỐ THUẬT TOÁN
DÙNG TRONG CHỮ KÝ SỐ

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

ĐÀ NẴNG – 2022

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DUY TÂN

NGUYỄN THẾ VINH

NGHIÊN CỨU MỘT SỐ THUẬT TOÁN
DÙNG TRONG CHỮ KÝ SỐ

Chuyên ngành: Khoa học máy tính
Mã số: 8480101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS. Huỳnh Bá Diệu

ĐÀ NẴNG – 2022

LỜI CẢM ƠN


Tôi xin gửi lời cảm ơn sâu sắc tới TS. Huỳnh Bá Diệu, người thầy đã
dành nhiều thời gian tận tình chỉ bảo, hướng dẫn, giúp đỡ tơi trong suốt q
trình tìm hiểu, nghiên cứu. Thầy là người định hướng và đưa ra nhiều góp ý
q báu trong q trình tơi thực hiện luận văn.

Tôi xin chân thành cảm ơn các thầy, cô ở Trường Khoa Học Máy Tính -
Đại học Duy Tân đã cung cấp cho tơi những kiến thức và tạo cho tôi những
điều kiện thuận lợi trong suốt q trình tơi học tập tại trường.

Tơi cũng bày tỏ lịng biết ơn về sự giúp đỡ của lãnh đạo cơ quan, đồng
nghiệp đã cung cấp dữ liệu, tài liệu và cho tôi những lời khuyên quý báu. Tôi
xin cảm ơn gia đình, người thân, bạn bè và các thành viên trong nhóm nghiên
cứu ln động viên và tạo mọi điều kiện tốt nhất cho tôi.

Tôi xin chân thành cảm ơn!
Đà Nẵng, ngày tháng năm 2022
Họ và tên

Nguyễn Thế Vinh

LỜI CAM ĐOAN

Tôi xin cam đoan đây là đề tài nghiên cứu của riêng tôi, thực hiện dưới
sự hướng dẫn khoa học của TS. Huỳnh Bá Diệu, tham khảo các nguồn tài liệu
đã được chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo.

Các kết quả nêu trong luận văn là trung thực và chưa được ai công bố
trong bất cứ cơng trình nào khác.

Đà Nẵng, ngày tháng năm 2022

Họ và tên

Nguyễn Thế Vinh

MỤC LỤC
LỜI CẢM ƠN...................................................................................................i
LỜI CAM ĐOAN............................................................................................ii
MỤC LỤC.......................................................................................................iii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT...................................vi
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ......................................................vii
LỜI MỞ ĐẦU..................................................................................................1
Chương 1. CÁC KHÁI NIỆM CƠ BẢN.......................................................3

1.1. Một số cơ sở toán học............................................................................3
1.1.1. Khái niệm nhóm..............................................................................3
1.1.2. Hàm  Euler...................................................................................3
1.1.3. Đồng dư thức...................................................................................4
1.1.4. Không gian Zn và Z*n.......................................................................5
1.1.5. Khái niệm phần tử nghịch đảo trong Zn..........................................6
1.1.6. Phần dư Trung Hoa.........................................................................6
1.1.7. Nhóm nhân Z*n.................................................................................8
1.1.8. Thặng dư..........................................................................................8
1.1.9. Các phép tính cơ bản trong khơng gian modulo.............................9
1.1.10. Thuật tốn tính nghịch đảo nhân trong Zn....................................9
1.1.11. Thuật tốn tính số mũ modulo trong Zn.......................................10
1.1.12. Hàm một chiều............................................................................12
1.1.13. Logarit rời rạc.............................................................................13

1.2. Độ phức tạp tính tốn...........................................................................13
1.3. Vấn đề an tồn thơng tin......................................................................14


1.3.1. Các hình thức tấn cơng đối với thơng tin trên mạng.....................14
1.3.2. Các phương pháp bảo vệ thông tin...............................................17
1.4. Chữ ký số..............................................................................................21

1.4.1. Giới thiệu.......................................................................................21
1.4.2. Chữ ký điện tử...............................................................................23
1.4.3. Tổng quan về chữ ký số.................................................................24
Chương 2. TÌM HIỂU CHỮ KÝ SỐ...........................................................26
2.1. Sơ đồ chữ ký.........................................................................................26
2.1.1. Giới thiệu.......................................................................................26
2.1.2. Định nghĩa sơ đồ chữ ký................................................................27
2.2. Hàm băm và thuật toán chữ ký số........................................................28
2.2.1. Hàm băm (Hash)...........................................................................28
2.2.2. Thuật toán băm SHA.....................................................................30
2.2.3. Mối quan hệ giữa hàm băm và thuật toán ký số...........................31
2.3. Chữ ký số RSA.....................................................................................32
2.3.1. Thông tin chung.............................................................................32
2.3.2. Sơ đồ..............................................................................................32
2.3.3. Phân tích và đánh giá....................................................................33
2.4. Chữ ký số ElGamal..............................................................................35
2.4.1. Thông tin chung.............................................................................35
2.4.2. Sơ đồ..............................................................................................35
2.4.3. Phân tích và đánh giá....................................................................36
2.5. Chuẩn chữ ký số...................................................................................37
2.5.1. Thông tin chung.............................................................................37
2.5.1. Sơ đồ..............................................................................................38
2.5.2. Phân tích và đánh giá....................................................................39
2.6. Chữ ký không phủ định được...............................................................39
2.6.1. Sơ đồ chữ ký Chaum-Van Antverpen.............................................40

Chương 3. MỘT SỐ THỬ NGHIỆM CHỮ KÝ VÀ ỨNG DỤNG MÔ
PHỎNG CHỮ KÝ SỐ TRONG BẢO MẬT TÀI LIỆU ĐIỆN TỬ..........43

3.1. Thử nghiệm chữ ký ElGamal...............................................................43
3.1.1. Quá trình ký...................................................................................43
3.1.2. Quá trình kiểm tra chữ ký..............................................................43

3.2. Thử nghiệm chữ ký không thể phủ định được.....................................44
3.2.1. Quá trình ký...................................................................................44
3.2.2. Giao thức kiểm thử........................................................................45
3.2.3. Giao thức chối bỏ..........................................................................45

3.3. Ý tưởng về chương trình ứng dụng......................................................46
3.3.1. Lĩnh vực ứng dụng của chương trình............................................46
3.3.2. Ý tưởng xây dựng chương trình.....................................................47

3.4. Xây dựng chương trình........................................................................47
3.4.1. Ngơn ngữ lập trình và mơi trường phát triển................................47
3.4.2. Chữ ký áp dụng..............................................................................47
3.4.3. Một số thuật toán trong chương trình...........................................48
3.4.4. Các chức năng chính.....................................................................50
3.4.5. Giao diện của ứng dụng và hướng dẫn sử dụng...........................51

3.5. Đánh giá kết quả đạt được....................................................................54
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...................................................56
TÀI LIỆU THAM KHẢO

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Chữ viết tắt Ý nghĩa

DSA Digital Signature Algorithm
RSA Rivesr, Shamir, Adleman
DSS Digital Signature Standart
SHA Security Hash Algorithm
ANSI American National Standard Institute
UCLN Ước chung lớn nhất
CRT Chinese Remainder Theorem

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 - Luồng thơng tin bình thường.........................................................15
Hình 1.2- Ngăn chặn thơng tin........................................................................15
Hình 1.3 - Chặn bắt thơng tin..........................................................................15
Hình 1.4 - Sửa đổi thơng tin............................................................................15
Hình 1.5 - Chèn thơng tin giả..........................................................................15
Hình 1.6 - Tấn cơng chủ động.........................................................................16
Hình 1.7 - Tấn cơng bị động...........................................................................17
Hình 1.8 - Các phương pháp và các phương tiện bảo vệ thơng tin.................20
Hình 3.1 - Sơ đồ q trình kí lên văn bản M...................................................43
Hình 3.2 - Sơ đồ q trình kiểm tra chữ ký văn bản M...................................44
Hình 3.3 - Sơ đồ quá trình ký trên văn bản M.................................................44
Hình 3.4 - Sơ đồ giao thức kiểm thử...............................................................45
Hình 3.5 - Sơ đồ giao thức chối bỏ.................................................................46

1

LỜI MỞ ĐẦU

Ngày nay, với sự xuất hiện của Internet và các mạng cục bộ đã giúp cho
việc trao đổi thơng tin trở lên nhanh chóng, dễ dàng. Sự phát triển mạnh mẽ

của Internet về bản chất chính là việc đáp ứng lại sự gia tăng không ngừng
của nhu cầu giao dịch trực tuyến trên hệ thống mạng toàn cầu. Các giao dịch
trực tuyến trên Internet phát triển từ những hình thức sơ khai như trao đổi
thơng tin (email, message, …), quảng bá, đến những giao dịch phức tạp thể
hiện qua các hệ thống chính phủ điện tử, thương mại điện tử ngày càng phát
triển mạnh mẽ trên toàn cầu.

Tuy nhiên lại phát sinh vấn đề mới về an tồn thơng tin, những tin tức
quan trọng nằm ở kho dữ liệu hay đang trên đường truyền có thể bị trộm cắp,
có thể bị làm sai lệch, có thể bị làm giả mạo. Điều đó có thể ảnh hưởng tới
các tổ chức, các cơng ty hay có thể là một quốc gia.

Để vừa đảm bảo tính bảo mật của thông tin lại không làm giảm sự phát
triển của việc trao đổi thơng tin quảng bá trên tồn cầu thì chúng ta phải có
các giải pháp phù hợp. Hiện có rất nhiều giải pháp cho vấn đề an tồn thơng
tin trên mạng như mã hóa thơng tin, chữ ký điện tử, chứng chỉ điện tử (chứng
chỉ khóa cơng khai), … Giải pháp chữ ký số hiện là một giải pháp an toàn và
hiệu quả. Chữ ký số được sử dụng để bảo đảm tính bảo mật, tính tồn vẹn,
tính chống chối bỏ của các thông tin giao dịch trên mạng Internet.

Chữ ký số tương đương với chữ ký tay nên có giá trị sử dụng trong các
ứng dụng giao dịch điện tử với máy tính và mạng Internet cần tính pháp lý
cao. Đồng thời, là một phương tiện điện tử được pháp luật thừa nhận về tính
pháp lý. Bên cạnh đó, chữ ký số cịn là một cơng nghệ mã hóa và xác thực rất
mạnh, thể giúp bảo đảm an toàn, bảo mật cao cho các giao dịch trực tuyến,
nhất là các giao dịch chứa các thơng tin liên quan đến tài chính. Ứng dụng
chữ ký số sẽ đem lại cho doanh nghiệp, tổ chức rất nhiều lợi ích như: Tiết

2


kiệm chi phí giấy tờ, thời gian luân chuyển trong hoạt động quản lý công văn,
giấy tờ, thư điện tử; Giúp đẩy nhanh các giao dịch qua mạng trong khi vẫn
đảm bảo độ an tồn và bảo mật thơng tin, …

Nhận thấy sự thiết thực của chữ ký số trong các tài liệu, văn bản điện tử,
trong các giao dịch qua mạng, tôi đã thực hiện đề tài luận văn “Nghiên cứu
một số thuật toán dùng trong chữ ký số”. Luận văn tập trung nghiên cứu
một số sơ đồ chữ ký điện tử và xây dựng chương trình thử nghiệm với sơ đồ
chữ ký điện tử ElGamal.

Luận văn bao gồm 3 chương:
Chương 1. Các khái niệm cơ bản.
Chương này giới thiệu một số lý thuyết toán học làm cơ sở trong giải
thuật ký số, cùng với đó là các khái niệm về an tồn thơng tin, khái niệm về
chữ ký số.
Chương 2. Tìm hiểu chữ ký số.
Chương này thực hiện tìm hiểu, phân tích một số thuật tốn chữ ký số.
Chương 3. Một số thử nghiệm chữ ký và Ứng dụng mô phỏng chữ
ký số trong bảo mật tài liệu điện tử
Trên cơ sở lý thuyết ở chương 2, tại chương 3 thực hiện một số thử
nghiệm về quy trình, lược đồ các chữ ký số.
Xây dựng ứng dụng mô phỏng ký số, xác thực chữ ký trên tài liệu điện
tử theo chữ ký ElGamal

3

Chương 1. CÁC KHÁI NIỆM CƠ BẢN

1.1. Một số cơ sở toán học


1.1.1. Khái niệm nhóm

Cho tập hợp X với phép tốn nhân. Ta nói (X,.) (gọi tắt là X) là:
(i) một nửa nhóm nếu phép tốn nhân kết hợp trên X;
(ii) một vị nhóm nếu phép tốn nhân kết hợp trên X và có phần tử trung
hòa trên X;
- Nhóm là một vị nhóm mà mọi phần tử đều khả đối xứng. Nói cách
khác, tập hợp G khác rỗng với phép tốn nhân được gọi là một nhóm nếu các
tính chất sau được thỏa:

(G1) Với mọi x,y,z  G, (xy)z = x(yz);
(G2) Tồn tại e  G sao cho với mọi x  G, ex = xe = x;
(G3) Với mọi x  G, tồn tại x-1  G sao cho xx-1 = x-1x = e. [2]
- Khái niệm nhóm con:
Nhóm con là bộ các phần tử (S , *) là nhóm thỏa mãn các tính chất sau:

SG, phần tử trung gian eS
x,yS  x*yS

- Nhóm Cyclic
+ Là nhóm mà mọi phần tử x của nó được sinh ra từ một phần tử đặc

biệt gG.
+ Phần tử này được gọi là phần tử nguyên thủy của: nN mà gn =x.

Ví dụ: (Z+ , *) là một nhóm Cyclic có phần tử sinh là 1.
1.1.2. Hàm  Euler

- Định nghĩa


4

Phi-hàm Euler, ký hiệu là , được xác định bởi (n) là các số nguyên

dương không vượt quá n, và nguyên tố cùng nhau với n. [3]

Hay phát biểu khác, đây là số lượng các số trong đoạn [1;n], có ước số

chung lớn nhất với n bằng 1.

Hàm  được gọi là hàm phi Euler.

Một vài giá trị đầu tiên của hàm này:

(1)=1,

(2)=1,

(3)=2,

(4)=2,

(5)=4,

- Tính chất

Ba tính chất cơ bản sau đây của hàm Euler:

+ Nếu p là số nguyên tố thì (p)=p-1.


+ Nếu p là số nguyên tố, a là số tự nhiên thì:

(pa) = pa - pa-1 (1.1)

+ Nếu a và b nguyên tố cùng nhau thì (ab)= (a) (b)

Từ đây có thể nhận được hàm Euler của số n như sau:

Nếu n=pa11 . pa22 ... pakk là thừa số nguyên tố của n thì:

1 1 1 Φ(n) = n(1- p1 )(1- p2 )...(1- pk ) (1.2)

1.1.3. Đồng dư thức

- Định nghĩa
Giả sử m là số nguyên dương và a, b là các số nguyên. Chúng ta sẽ nói a
đồng dư với b modulo m nếu m | (a-b)
Nếu a đồng dư với b modulo m, ta viết a  b (mod m). [3]

5

Hiểu cách khác, a được gọi là đồng dư thức với b theo modulo m, nếu
a,b chia cho m cùng dư. Số nguyên m được gọi là modulo của đồng dư.

Dễ dàng thấy rằng, a  b (mod m) khi và chỉ khi có số nguyên k sao cho
a = b + km.

Ví dụ:
22  4 (mod 9) vì 9 | (22 − 4) = 18;


−24 ≡ 3 (mod 9) vì 9 | (−24 − 3) = −27;
- Tính chất của đồng dư
Cho a, a1, b, b1, c, c1 Z. Ta có các tính chất sau:
1. a  b (mod n) nếu và chỉ nếu a và b có cùng số dư khi chia cho n.
2. Tính phản xạ: a  a (mod n).
3. Tính đối xứng: Nếu a  b (mod n) thì b  a (mod n).
4. Tính giao hoán: Nếu a  b (mod n) và b  c (mod n) thì a  c (mod
n).
5. Nếu a  a1 (mod n), b  b1 (mod n) thì a+b  a1+b1 (mod n).
Lớp tương đương của một số nguyên a là tập hợp các số nguyên đồng dư
với a theo modulo n. Từ các tính chất 2,3 và 4 ta thấy: cho n cố định đồng dư
với n trong không gian Z vào các lớp tương đương. Nếu a = qn + r, trong đó
0 r  n thì: a  a1 (mod n). Vì vậy mỗi số nguyên a là đồng dư theo modulo
n với duy nhất một số nguyên trong khoảng từ 0 đến n-1 và được gọi là thặng
dư nhỏ nhất của a theo modulo n. Cũng vì vậy, a và r cùng thuộc một lớp
tương đương. Do đó r có thể đơn giản được sử dụng để thể hiện lớp tương
đương.
1.1.4. Không gian Zn và Z*n

Các số nguyên theo modulo n ký hiệu Zn là một tập hợp các số nguyên |
0,1,2,3,...,n-1|. Các phép toán cộng, trừ, nhân trong Zn được thực hiện theo
modulo n.

6

- Định lý:
Nếu a  b (mod m) và c  d (mod m) thì:

a + c  b + d (mod m)
a − c  b − d (mod m)

ac  bd (mod m)
- Định nghĩa
Từ định lý trên, ta có thể định nghĩa phép cộng, trừ, nhân trên Zn như sau:
Giả sử A và B là các lớp đồng dư modulo m, tương ứng chứa các phần tử
a và b. Khi đó A + B và A · B được hiểu là các lớp đồng dư modulo m, tương
ứng chứa các phần tử a + b và ab. [3]
1.1.5. Khái niệm phần tử nghịch đảo trong Zn

- Định nghĩa
Ta đã biết, đồng dư ax  1 (mod n) có nghiệm khi và chỉ khi (a, n) | 1.
Trong trường hợp này nghiệm là duy nhất modulo n và nó được gọi là nghịch
đảo của a modulo n. [3]
Nghịch đảo của a ký hiệu là a-1.
- Tính chất
1. Cho a,bZn . Phép chia của a cho b theo modulo n là tích của a và b-1
theo modulo n, và chỉ được xác định khi b có nghịch đảo theo modulo n.
2. Giả sử d=UCLN(a,n). Phương trình đồng dư ax  b (mod n) có nghiệm
x nếu và chỉ nếu d chia hết cho b, trong trường hợp các nghiệm d nằm trong
khoảng 0 đến n-1 thì các nghiệm đồng dư theo modulo n/d.
Ví dụ: Nghịch đảo của 3 modulo 10 bằng 7, và ngược lại, nghịch đảo của
7 modulo 10 bằng 3, vì 3 · 7 = 7 · 3  1 (mod 10). Nghịch đảo của 1 và của 9
modulo 10 bằng chính nó vì 1 · 1  1 (mod 10) và 9 · 9  1 (mod 10). Các số
0, 2, 4, 5, 6, 8 khơng có nghịch đảo modulo 10.

7

1.1.6. Phần dư Trung Hoa

- Định nghĩa
Giả sử m1, m2, ..., mk là các số nguyên dương đôi một nguyên tố cùng

nhau. Khi đó hệ các đồng dư:

x  a1 (mod m1)

.................... (1.3)

x  xk (mod mk)

Có duy nhất nghiệm modulo M = m1m2...mk. [3]

- Thuật toán của Gausse

Nghiệm x trong hệ phương trình đồng dư trong định lý phần dư Trung

Hoa được tính như sau:

k (1.4)

∑ a i N i M i mod n

i=1

Trong đó:

N1 = n/ni , Mi = Ni-1 mod ni

Ví dụ: Giải hệ

x  1 (mod 3)


x  2 (mod 5)

x  3 (mod 7)

Do các số 3, 5, 7 là đôi một nguyên tố cùng nhau, nên ta đặt M1 = 5 * 7 =

35, M2 = 3 * 7 = 21, M3 = 3 * 5 = 15. Giải các đồng dư

35y1  1 (mod 3)

21y2  1 (mod 5)

15y3  1 (mod 7)

ta được y1 = 2, y2 = 1, y3 = 1. Vậy hệ ban đầu có duy nhất nghiệm

x = 1 * 35 * 2+2 * 21 * 1+3 * 15 * 1  52 (mod M = 3 * 5 * 7 = 105).

8

- Tính chất
Nếu UCLN(n1 , n2 )=1 thì cặp đồng dư x=a(mod n1) và x=a(mod n2) có
nghiệp duy nhất x=a(mod n1n2 ).
1.1.7. Nhóm nhân Z*n

- Định nghĩa

Nhóm nhân của Zn ký hiệu là Z*n =| UCLN(a,n)=1|. Đặc biệt, nếu n là số

nguyên tố thì Z*n ={ aZn | 1  a  n-1 }.


* Định nghĩa:

Cho aZ*n. Bậc của a, ký hiệu là ord(a) là số dương t nhỏ nhất sao cho:

at  1(mod n) (1.5)

- Tính chất 1

Cho n 2 là số nguyên

(i). Định lý Euler: Nếu aZ*n thì a(n)  1(mod n).

(ii). Nếu n là tích của các số nguyên tố phân biệt và nếu rs (mod (n))

thì atas (mod n) với mọi số nguyên a. Nói cách khác, làm việc với các số

theo modulo ngun tố p thì số mũ có thể giảm theo modulo (n).

- Tính chất 2

Cho số nguyên tố p

(i). Định lý Fermat: Nếu UCLN(a,p)=1 thì ap-1 1 (mod p)

(ii). Nếu r  s (mod p-1) thì at as (mod p) với mọi số nguyên a. Nói

cách khác, làm việc với các số theo modulo nguyên tố p thì số mũ có thể giảm

theo modulo p-1.


(iii). Đặc biệt, ap a(mod p) với mọi số nguyên a.

1.1.8. Thặng dư

- Định nghĩa
Giả sử m là số nguyên dương. Chúng ta nói rằng số ngun a là thặng dư
bình phương của m nếu (a, m)=1 và đồng dư x2  a (mod m) có nghiệm.

9

Nếu đồng dư x2  a (mod m) khơng có nghiệm thì ta nói a là khơng
thặng dư bình phương. [3]

Tập hợp các thặng dư bậc 2 theo modulo m ký hiệu là Qm và tập hợp các
thặng dư không bậc 2 theo modulo m ký hiệu là Qm.

Chú ý vì định nghĩa 0 Z*m nên 0Qm và 0Qm.
- Tính chất
Cho n là tích của hai số nguyên tố p và q. Khi đó a  Z*n là một thặng dư
bậc 2 theo modulo n khi và chỉ khi aQn và aQn.
Ta có |Qn| = |Qp| . |Qq| = (p-1)(q-1)/4 và |Qn| = 3(p-1)(q-1)/4
* Ví dụ:
Để tìm các thặng dư bình phương của 11 chúng ta tính bình phương của
tất cả các số 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Ta thấy 12  102  1 (11), 22  92  4
(11), 32  82  9 (11), 42  72  5 (11), 52  62  3 (11). Như vậy, các thặng
dư bình phương của 11 là: 1, 3, 4, 5, 9; các khơng thặng dư bình phương của
11 là: 2, 6, 7, 8, 10.
1.1.9. Các phép tính cơ bản trong không gian modulo
C(hao+nb)làmsoốdnng=uyên dươang+. bNhư trưifớca, +cábc


a + b – n if a + b > n
hiện bởi các số nguyên | 0, 1, 2, .., n-1 |. Nhận xét răng nếu a, bZn thì:

(1.6)

Vì vậy, phép cộng (và phép trừ) modulo có thể thực hiện mà khơng cần
thực hiện các phép chia dài. Phép nhân modulo của a và b được thực hiện
bằng phép nhân thông thường a với b như các số ngun thơng thường, sau đó
lấy phần dư của kết quả sau khi chia cho n.
1.1.10. Thuật tốn tính nghịch đảo nhân trong Zn

INPUT: aZn

10

OUPUT: a-1 mod n nếu tồn tại.

Sử dụng thuật tốn Euclidean mở rộng sau để tìm các số nguyên x và y

sao cho:

ax + ny = d với d = UCLN(a,n).

Nếu d>1 thì a-1 mod n khơng tồn tại. Ngược lại return(x).

- Thuật toán Euclidean mở rộng

INPUT: 2 số nguyên dương a và b với a  b.


OUPUT: d= UCLN(a,b) và các số nguyên x,y thỏa mãn: ax + by = d.

Nếu b=0 thì đặt da, x1, y0 và return(d,x,y).

Đặt x21, x10, y10, y21.

Khi b>0 thực hiện:

q[a/b], r = a-qb, xx2-px1 , yy2-py1.

ab, rb, x2x1 , x1x, y2y1 , y1 y.

Đặt da, xx2, yy2 và return(d,x,y).

Số mũ modulo có thể được tính một cách hiệu quả bằng thuật tốn bình

phương và nhân liên tiếp, nó được sử dụng chủ yếu trong nhiều giao thức mã

hóa. Một phiên bản của thuật tốn này như sau: Giả sử biểu diễn nhị phân của

k là:

i với ki{0,1} (1.7)

∑ ki2i

i=0

1.1.11. Thuật tốn tính số mũ modulo trong Zn


INPUT: aZn và số mũ k với 0 k  n. Với k có biểu diễn nhị phân là:

k = i (1.8)
OUPUT: ak mod n.
∑ ki2i

i=0

Thuật tốn Bình phương và nhân

Thuật tốn bình phương và nhân là thuật tốn tính nhanh lũy thừa tự

nhiên của một số (thực hoặc nguyên), trong trường hợp cơ số là số nguyên có

11

thể được rút gọn theo một modulo nào đó. Được sử dụng nhiều trong các bài

tốn mã hóa và giải mã các hệ mã hóa, đặc biệt là hệ mã hóa cơng khai.

Tạo bảng:

k a Khởi tạo d=1

Điền giá trị k Điền giá trị a

… … …

Với điều kiện chủ chốt: k lẻ thì tính, k chẵn thì bỏ qua.


Ví dụ: 1535 mod 79

k a d=1 Khởi tạo d=1
35 15 15 k lẻ => tính lại d, k, a trong IF

d := d * (a mod n) = 1 * (15 mod 79) = 15

k := k div 2 = 35 div 2 = 17

a := (a * a) mod n = (15 * 15) mod 79 = 67
17 67 57 k lẻ => tính lại d, k, a tương tự trên
8 65 * k chẵn => ko tính lại d

Vẫn tính lại k, a như trên

4 38 * k chẵn => tương tự trên

2 22 * k chẵn => tương tự trên

1 10 17 k chẵn => tương tự trên

0 k=0 => dừng tính, lấy d cuối cùng (d = 17) là kết quả

Độ phức tạp theo bit của các phép tốn cơ bản trong Zn được trình bày

trong bảng sau:

Độ phức tạp của các phép toán trong Zn

Phép toán (a+b) mod n Độ phức tạp về bit

Cộng modulo 0(lg n)

Trừ modulo (a-b) mod n 0((lg n)2)

Nhân modulo (a*b) mod n 0((lg n)2)

Nghịch đảo theo a-1 mod n 0((lg n)2)

modulo ak mod n,k
Số mũ modulo

1.1.12. Hàm một chiều


×