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

Nghiên cứu một số lược đồ chia sẻ thông tin mật và ứng dụng (LV01870)

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.16 MB, 77 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

======

NGUYỄN THU THỦY

NGHIÊN CỨU MỘT SỐ LƢỢC ĐỒ CHIA SẺ
THÔNG TIN MẬT VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ TOÁN HỌC

HÀ NỘI, 2016


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

======

NGUYỄN THU THỦY

NGHIÊN CỨU MỘT SỐ LƢỢC ĐỒ CHIA SẺ
THÔNG TIN MẬT VÀ ỨNG DỤNG

Chuyên ngành: Toán ứng dụng
Mã số: 60 46 01 02

LUẬN VĂN THẠC SĨ TOÁN HỌC

Ngƣời hƣớng dẫn khoa học: TS. TRẦN VĂN DŨNG



HÀ NỘI, 2016


LỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô giáo
trong trường Đại học Sư Phạm Hà Nội 2 nói chung và các thầy cô trong
phòng sau đại học nói riêng đã tận tình dạy bảo, truyền đạt lại những kiến
thức và kinh nghiệm quý báu trong suốt thời gian qua.
Tôi xin trân trọng gửi lời cảm ơn tới thầy giáo TS. Trần Văn Dũng,
người đã nhiệt tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn tôi trong suốt quá
trình thực hiện luận văn cao học. Trong quá trình làm việc với thầy, tôi đã tiếp
thu thêm được nhiều kiến thức bổ ích, những kinh nghiệm trong việc bảo mật
thông tin, kinh nghiệm trong việc thực hiện luận văn cùng thái độ làm việc
nghiêm túc, hiệu quả. Đây là những kinh nghiệm cần thiết, quý báu giúp tôi
áp dụng vào thực tiễn sau này khi làm việc.
Sau cùng, cho phép tôi cảm ơn các bạn bè, gia đình đã giúp đỡ, ủng hộ
tôi rất nhiều trong toàn bộ quá trình học tập cũng như nghiên cứu hoàn thành
luận văn này

Hà Nội, ngày

tháng

năm 2016

Học viên thực hiện

Nguyễn Thu Thủy



LỜI CAM ĐOAN
Tôi xin cam đoan:
Những kết quả nghiên cứu trình bày trong luận văn này là hoàn toàn
trung thực, của tôi không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và
pháp luật Việt Nam. Trong quá trình làm luận văn tôi có tham khảo các tài
liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo đó. Những kiến thức
tôi trình bày trong luận văn này chưa được trình bày hoàn chỉnh trong bất cứ
tài liệu nào.
TÁC GIẢ LUẬN VĂN

Nguyễn Thu Thủy


MỤC LỤC
MỞ ĐẦU .......................................................................................................... 1
1. Lý do chọn đề tài ..................................................................................... 1
2. Mục đích nghiên cứu ............................................................................... 1
3. Nhiệm vụ nghiên cứu............................................................................... 1
Đối tượng và phạm vi nghiên cứu ................................................................. 2
4. Phương pháp nghiên cứu ......................................................................... 2
CHƢƠNG 1. KIẾN THỨC CƠ SỞ HỆ MẬT MÃ KHOÁ CÔNG
KHAI ................................................................................................................ 3
1.1. Một số định nghĩa cơ bản ...................................................................... 3
1.2. Số học modulo ........................................................................................ 6
1.3. Nếu a là căn nguyên thủy của trường Z p thì bài toán Logarit rời
rạc luôn có nghiệm....................................................................................... 13
1.4. Hệ mã khoá công khai .......................................................................... 18
1.4.1. Mã khoá công khai RSA ................................................................ 18
1.4.2. Chữ ký điện tử DSA ....................................................................... 26

CHƢƠNG 2. LƢỢC ĐỒ CHIA SẺ THÔNG TIN MẬT........................... 31
2.1. Khái niệm chia sẻ bí mật ...................................................................... 31
2.2. Mã Reed - solomon ............................................................................... 35
2.2.1. Khôi phục dữ liệu ........................................................................... 37
2.2.2. Phát hiện lỗi .................................................................................... 39
2.2.3. Sửa lỗi............................................................................................. 40
2.3. Thuật toán Berlekamp – Welch ........................................................... 42
2.4. Lược đồ chia sẻ bí mật Shamir ............................................................. 45
2.4.1. Chia sẻ khoá K thành các mảnh ..................................................... 47
2.4.2. Khôi phục bí mật từ các mảnh ....................................................... 48


CHƢƠNG 3. ỨNG DỤNG SINH CHỮ KÝ RSA CHIA SẺ ..................... 51
3.1. Chia sẻ Shamir cho khoá riêng RSA .................................................... 51
3.2. Chia sẻ chữ ký điện tử RSA ................................................................. 54
3.3. Chia sẻ chữ ký điện tử .......................................................................... 56
3.3.1. Đặt vấn đề....................................................................................... 56
3.3.2. Mô hình hệ thống và yêu cầu bảo mật ........................................... 60
3.4. Lược đồ sinh chữ ký RSA chia sẻ ....................................................... 61
3.5. Giao thức shoup .................................................................................... 65
KẾT LUẬN .................................................................................................... 69
TÀI LIỆU THAM KHẢO ............................................................................ 70


1

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay máy tính ngày càng thể hiện rõ vai trò thiết yếu trong mọi lĩnh
vực của xã hội. Nó đã trở thành phương tiện điều hành các hệ thống giúp cho

mọi công việc rút ngắn khoảng cách về không gian và thời gian. Chữ ký số ra
đời giúp cho doanh nghiệp tiết kiệm rất nhiều thời gian, công sức trong một
số công việc giao dịch với ngân hàng, cơ quan hành chính. Hoạt động giao
dịch điện tử cũng được đẩy mạnh.
Với mạng máy tính ngày càng phổ biến trên toàn cầu người ta đã dùng
mạng Internet một cách thông dụng. Nhiều dịch vụ điện tử như: thư điện tử,
chuyển tiền, thương mại điện tử, chính phủ điện tử… đã được áp dụng rộng
rãi. Do đó yêu cầu về an toàn mạng và an ninh dữ liệu càng trở lên cấp bách
và cần thiết. Ý tưởng chia sẻ bí mật đã ra đời dựa trên nguyên tắc chia sẻ
thông tin mật ra thành các mảnh nhỏ và trao cho mỗi người một mảnh sao cho
mỗi người với số mảnh đó không tìm ra được thông tin mật.
Được sự gợi ý của giáo viên hướng dẫn và nhận thấy tính thiết thực của
vấn đề em đã chọn đề tài “Lược đồ chia sẻ thông tin mật và ứng dụng sinh
chữ ký RSA chia sẻ” để làm nội dung cho luận văn.
2. Mục đích nghiên cứu
 Làm thế nào để chia sẻ được thông tin mật.
 Ứng dụng vào bài toán thực tế.
3. Nhiệm vụ nghiên cứu
 Nghiên cứu lược đồ chia sẻ thông tin mật.
 Ứng dụng sinh chữ ký RSA chia sẻ.


2

Đối tƣợng và phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
 Nghiên cứu về chia sẻ thông tin mật và ứng dụng.
4.2 Phạm vi nghiên cứu
 Nghiên cứu trên cơ sở toán học và trường số modulo.
4. Phƣơng pháp nghiên cứu

 Nghiên cứu lý thuyết.
 Nghiên cứu thực nghiệm trên thực tiễn cuộc sống.
NỘI DUNG
Ngoài phần mở đầu, kết luận và tài liệu tham khảo. Luận văn được chia
làm 3 chương:
Chương 1: Kiến thức cơ sở hệ mật mã khóa công khai
Chương 2: Lược đồ chia sẻ thông tin mật
Chương 3: Ứng dụng sinh chữ ký RSA chia sẻ


3

CHƢƠNG 1
KIẾN THỨC CƠ SỞ HỆ MẬT MÃ KHOÁ CÔNG KHAI
Chương 1 trình bày các kiến thức toán học nền tảng làm cơ sở áp dụng
vào lược đồ chia sẻ thông tin mật và ứng dụng sinh chữ kí RSA chia sẻ.
Nội dung trong chương 1đề cập đến một số định nghĩa cơ bản trong toán
học như nhóm, vành, trường, số học modulo,… và một số định lí quan trọng
để tính toán áp dụng vào việc chia sẻ thông tin mật như: định lí Euler, định lí
Fecma, định lí phần dư trung hoa. Ngoài ra trong chương 1 này bước đầu đã
đề cập đến hệ mã khóa công khai cụ thể là mã khóa công khai RSA. Bên cạnh
đó có những ví dụ cụ thể, thực tế đi kèm để minh họa làm cho người đọc dễ
hiểu và thấy được tác dụng thực tiễn của nó mang lại.
1.1. Một số định nghĩa cơ bản
Nhóm hữu hạn
Nhóm G là một tập hợp các phần tử, trên đó có một phép toán hai ngôi
ký hiệu là dấu chấm “.”, thỏa mãn các tính chất sau:
 Phép toán “.” có tính kết hợp: với mọi a, b, c thuộc G: a.(b.c) = (a.b).c
 Có phần tử e thuộc G sao cho với mọi a thuộc G: a.e = e.a = a, phần tử
e được gọi là phần tử đơn vị của G

 Có phần tử nghịch đảo: với mọi a thuộc G, luôn tồn tại duy nhất b sao
cho:
a.b = b.a = e, b được gọi là nghịch đảo của a và ký hiệu a 1  b
Nhóm hữu hạn là một nhóm mà số phần tử của nó là hữu hạn. Số phần tử
của một nhóm hữu hạn còn gọi là cấp của nhóm đó. Trong lý thuyết nhóm,
thuật ngữ cấp có hai ý nghĩa:
Cấp của một nhóm G chính là số phần tử của G và ký hiệu là ord (G).


4

Cấp của phần tử a trong nhóm G là số nguyên dương m nhỏ nhất thỏa
mãn a m  e , trong đó e là phần tử đơn vị của nhóm G, a m là tích của m phần
tử a. Nếu cấp của a bằng cấp của nhóm G, thì ta gọi a là phần tử sinh của G.
Cấp của nhóm và của phần tử có thể hữu hạn hoặc vô hạn.
Ví dụ tập hợp các số nguyên Z cùng với phép toán cộng lập thành một
nhóm có cấp bằng ∞ (vì Z có vô số phần tử).
Ví dụ 1.1: Bảng nhân cho các phần tử của nhóm đối xứng:
.

e

s

t

u

v


w

e

e

s

t

u

v

w

s

s

e

v

w

t

u


t

t

u

e

s

w

v

u

u

t

w

v

e

s

v


v

w

s

e

u

t

w

w

v

u

t

s

e

Nhóm S3 có 6 phần tử, nên cấp của nó bằng 6: ord( S3 ) = 6
Cấp của các phần tử trong nhóm S3 ;
- Phần tử đơn vị e có cấp bằng 1.
- Các phần tử s, t, w bình phương lên bằng e: s 2  t 2  w 2 nên chúng có

cấp bằng 2.
- Các phần tử u, v có cấp bằng 3, vì u 2  v nên u 3  uv  e , tương tự cho v.
Vành và trƣờng
Định nghĩa vành:
Ta gọi là vành một tập hợp X cùng với hai phép toán hai ngôi đã cho
trong X ký hiệu theo thứ tự bằng các dấu + và dấu. (người ta thường ký hiệu
như vậy) và gọi là phép cộng và phép nhân sao cho các điều kiện sau được
thỏa mãn:


5

1) X cùng với phép cộng là một nhóm aben
2) X cùng với phép nhân là một nửa nhóm
3) Phép nhân phân phối đối với phép cộng: với các phần tử tùy ý
x, y,z  X , ta có
x( y  z )  xy  xz
( y  z ) x  yx+zx

Phần tử trung lập của phép cộng, ký hiệu là 0 và gọi là phần tử không.
Phần tử đối xứng (đối với phép cộng) của một phần tử x, ký hiệu là –x và gọi
là đối của x. Nếu phép nhân là giao hoán thì ta bảo vành X là vành giao hoán.
Nếu phép nhân có phần tử trung lập thì phần tử đó gọi là phần tử đơn vị của X
và thường ký hiệu là e hay 1 (nếu không có sự nhầm lẫn).
Ví dụ 1.2: Tập hợp Z các số nguyên cùng với phép cộng và phép nhân thông
thường là một vành giao hoán có đơn vị gọi là vành các số nguyên. Ta cũng
có vành các số hữu tỉ, các số thực, các số phức (các phép toán vẫn là phép
cộng và phép nhân thông thường).
Định nghĩa trƣờng:
Ta nói một vành X giao hoán, có đơn vị, có nhiều hơn một phần tử là

một trường nếu và chỉ nếu X- {0} là một nhóm đối với phép nhân của X.
Ví dụ 1.3: Tập hợp Q các số hữu tỉ cùng với phép cộng và phép nhân các số
là một trường. Ta cũng có trường số thực R và trường số phức C.
Định nghĩa trƣờng con.
Giả sử X là một trường, A là một bộ phận của X đóng đối với hai phép
toán trong X. A là một trường con của trường X nếu A cùng với hai phép toán
cảm sinh trên A là một trường.
Đị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à Fp
hoặc GF(p) với p là số phần tử thuộc trường.


6

1.2. Số học modulo
Cho n là số nguyên dương. Giả sử a, b là các số nguyên: ta ký hiệu là
a  b(mod n) , khi và chỉ khi b  a  kn trong đó k là số nguyên. Khi đó ta nói

a và b đồng dư với nhau theo modulo n. Nếu trong đó a là số nguyên dương
nhỏ hơn n, thì a được gọi là phần dư của b khi chia cho n, đôi khi a được gọi
là thặng dư của b theo modun n.
Tập hợp các số nguyên từ 0 đến n – 1 được gọi là tập hợp thặng dư hoàn
toàn modulo n. Điều này có nghĩa là với mỗi số nguyên a, thặng dư modulo n
là một số dư từ 0 đến n – 1.
Modulo số học cũng như số học bình thường, bao gồm các phép toán
cộng, nhân có tính giao hoán, kết hợp và phân phối. Mặt khác, giảm mỗi giá
trị trung gian trong suốt quá trình tính toán.
(a  b) mod n  ((a mod n)  (b mod n)) mod n
(a  b) mod n  ((a mod n)  (b mod n)) mod n
(a.b) mod n  ((a mod n).(b mod n)) mod n

(a.(b  c)) mod n  ((a.b) mod n)  ((a.c) mod n) mod n

Số nguyên tố
Số nguyên tố là một số nguyên dương lớn hơn 1, chỉ có ước là 1 và
chính nó.
Ví dụ 1.4 : 2, 3, 5, 7, 11, 17, 53, 73, 524287, 2147483647,… là số nguyên tố.
Số các số nguyên tố là vô tận. Hệ mật mã thường dùng số nguyên tố cỡ 512
bits và thậm chí lớn hơn vậy.
Ƣớc số chung lớn nhất
Hai số được gọi là nguyên tố cùng nhau nếu ước chung lớn nhất của
chúng bằng 1. Có thể viết như sau: Gcd (a, n)  1.
Cách dễ nhất để tính toán ra ước số chung lớn nhất của hai số là nhờ vào
thuật toán Euclid.


7

Số nghịch đảo modulo.
Định nghĩa phần tử nghịch đảo.
Phần tử a của Z n được gọi là khả nghịch trong Z n hay khả nghịch theo
modulo m nếu tồn tại phần tử a ' trong Z n sao cho a  a'  1 trong Z n hay
a  a'  1(mod m) . Khi đó a ' được gọi là nghịch đảo của modulo m của a.

Ví dụ 1.5 : Nghịch đảo của 5 modulo 14 là 3 vì:
5.3  15  1mod 14

Tính chất:
 Cho a, b  Z n . Phép chia 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.
 Cho a  Z n , a là khả nghịch khi và chỉ khi gcd (a,n) = 1.

 Giả sử d = gcd(a,n). Phương trình đồng dư ax  b modn 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

Định lý 1: Cho số nguyên a  0 nguyên tố cùng nhau với n, thì luôn tồn tại
phần tử nghịch đảo của a theo modulo n
Chứng minh:
Xét tập hợp {1, 2, 3… n-1}. Nhân từng phần tử của tập hợp với a theo modulo
n, nhận được tập hợp {(a mod n), (2a mod n), (3a mod n),…((n-1)a mod n)}
tập này sẽ gồm các số: 1, 2, 3, …, n-1 có nghĩa đối với một số giá trị i nào đó
sẽ thỏa mãn điều kiện ia mod n  1 .
Điều này dẫn đến mâu thuẫn nếu như tồn tại 2 giá trị h và k thỏa mãn
điều kiện trên nghĩa là: ha mod n  ka mod n .
Điều này dẫn đến h  k mod n .


8

Vì gcd (a,n) = 1 suy ra h = k. Vậy ta tìm được i là phần tử nghịch đảo
của a và i là duy nhất.
Hệ quả: Nếu như p là số nguyên tố, thì bất kỳ số a sao cho 0 < a < p luôn tồn
tại phần tử nghịch đảo theo modulo p.
Số nghịch đảo theo modulo n
Nếu USCLN (a, n) = 1 thì luôn tồn tại b (b b  a 1 mod n hay ab  1(mod n)


Ta gọi b là số nghịch đảo của a theo modulo n
Ví dụ 1.6: 5.2  1(mod9) hay 2  51 mod9
Định lý 2: Định lý Fecma.
Nếu p là số nguyên tố và a không phải là bội số của m thì định lý Fecma
phát biểu như sau:
a p1  1(mod p)

Ví dụ 1.7:
34  1mod  5

26 mod7  1
2100 mod7  24 mod7  2

Định lý 3: Định lý Euler
Định lý Euler phát biểu rằng nếu n là số nguyên dương bất kỳ và a là số
  n

nguyên tố cùng nhau với n, thì a

 1(mod n) trong đó  (n) là ký hiệu của

phi hàm Euler đếm số các số nguyên giữa 1 và n nguyên tố cùng nhau với n.
Đây là tổng quát hóa của định lý nhỏ Fecma, vì nếu n = p là số nguyên tố thì

 ( p)  p  1
Định lý này có thể được sử dụng để dễ dàng giản ước với mô đun n rất
lớn.


9


Ví dụ 1.8: Tìm chữ số tận cùng của số 7 222
Ta có 7222  74.552   74  .72  155.72  49  9(mod10)
55

Vậy 7 222 có chữ số tận cùng là 9.
Ví dụ 1.9:

 (7)  6
 (13)  12
 ( p)  p  1
 ( p.q)   ( p). (q)

(p,q)=1

 (p k )  p k  p k 1

 (8)  23  22  4
 (56)   (7). (8)  6.(23  22 )  24
Định lý 4: Định lý phần dƣ Trung hoa
Định lý phần dư trung hoa là tên người phương tây đặt cho định lý này.
Người Trung Quốc gọi đó là bài toán Hàn Tín điểm binh. Tục truyền rằng khi
Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng 5, hàng 7. Rồi báo
cáo số dư. Từ đó ông tính được chính xác quân số đến từng người
Định lý phần dư trung hoa được phát biểu như sau:
Cho n  2 , m1 , m2 ,...mn là những số nguyên dương khác 0, đôi một
nguyên tố cùng nhau và a1 , a2 ,...an là n số nguyên bất kỳ. Khi đó hệ phương
trình đồng dư x  ai (mod mn ) có nghiệm và nghiệm này duy nhất theo
modulo M  m1m2 ...mn
Chứng minh:

Có hai vấn đề cần chứng minh: Trước tiên là sự tồn tại nghiệm của bài
toán và sau đó là chứng minh tính duy nhất của nghiệm.
Trước hết ta sẽ chứng minh bổ đề sau:


10
Bổ đề Berzout: cho hai số nguyên m và n sao cho gcd(m, n)  1 khi đó luôn
tồn tại x và y sao cho mx  ny  1 .
Hệ quả: Với mọi d nguyên luôn tồn tại u và v sao cho d  mu  nv
Bây giờ quay lại bài toán chúng ta đi chứng minh sự tồn tại nghiệm và
tính duy nhất nghiệm.
Theo lý thuyết đồng dư tồn tại u và v sao cho:
x  a1  m1u, x  a2  m2 v

Do vậy ta chỉ cần chọn u, v thỏa mãn: a1  a2  m2 v  m1u điều này hiển
nhiên theo bổ đề Berzout ở trên.
Như vậy tồn tại x thỏa mãn hệ phương trình đồng dư trên.
Bây giờ ta sẽ chứng minh tính duy nhất của nghiệm.
Thật vậy, giả sử x, x ' là 2 nghiệm của hệ phương trình đã cho ta có:
x  x' (mod mi ), i  1,...n

Do mi đôi một nguyên tố cùng nhau lên ta phải có x  x' (mod m1...mn ) .
Ta khẳng định được tính duy nhất của nghiệm theo mod m1...mn .
Ví dụ 1.10: Giải hệ phương trình đồng dư:
 x  2(mod3)

 x  3(mod5)
 x  5(mod 7)



Ta có M = 3.5.7 = 105 .
M1 = 5.7 = 35
M2 = 3.7 = 21
M3 = 3.5 =15
y1  351 (mod3)  21 (mod3)  2
y2  211 (mod5)  11 (mod5)  1


11

y3  151 (mod7)  11 (mod7)  1

Từ đó:
x  2.35.2  3.21.1  5.15.1(mod105)
x  140  63  75(mod105)  278(mod105)
x  68(mod105)

Như vậy x có dạng: x  68  105k (k là một số nguyên bất kỳ).
Sơ đồ chia sẻ bí mật trên cơ sở định lý phần dƣ Trung Hoa.
Chúng ta lựa chọn một số tập hợp gồm các cặp số nguyên tố cùng nhau

m1 , m2 ,..., mn 

có kích thước đủ lớn. Giá trị n tương ứng với số lượng thành

viên mà nhà phân phối muốn chia sẻ bí mật. Chúng ta tính tích của k số nhỏ
nhất từ tập trên. Giả sử tích này bằng N. Chúng ta tính tiếp tích k-1 số lớn
nhất từ tập trên. Giả sử tích này bằng M. Số k gọi là ngưỡng của sơ đồ trên cơ
sở tập hợp m1 , m2 ,..., mn  , nếu như M  N . Chúng ta chọn số bí mật S thỏa
mãn điều kiện M  S  N . Bí mật được chia cho các thành viên dưới dạng

một cặp số  ri , mi  , ở đây ri là phần dư của phép chia S cho mi .
Nếu như t  k thành viên có mảnh bí mật  ri , mi  liên kết với nhau để
khôi phục bí mật S, bằng cách giải hệ phương trình đồng dư:
 x  r1 mod m1
 x  r mod m

2
2

.....................
 x  rt mod mt

Sử dụng định lý Trung hoa để giải hệ trên và tìm ra nghiệm x0.
Chúng ta dễ dàng chứng minh x0=S. Rõ ràng theo cách xây dựng sơ đồ
phân chia S thỏa mãn hệ đồng dư thức đã cho, với điều kiện m1m2

mt  N  S .

Áp dụng định lý Trung hoa thì hệ trên có nghiệm duy nhất, nghiệm này nhỏ hơn
tích Modulo m1m2

mt và thỏa mãn hệ, có nghĩa là x0=S.


12

Bây giờ chúng ta chứng minh rằng với t '  k thành viên giữ phần bí mật,
họ không thể khôi phục được khóa mật S nhờ giải hệ phương trình đồng dư
sau:
 x  r1 mod m1

 x  r mod m

2
2

.....................
 x  rt ' mod mt '

Giả sử x0' là số không âm nhỏ nhất thỏa mãn hệ trên: 0  x0'  m1m2

mt ' .

Bởi vì t '  k nên chúng ta có x0'  M  S . Biết rằng S  x0'  Qm1m2 ...mt ' với
Q là số tự nhiên nào đó, nhưng tương ứng với sự chọn tập hợp m1 , m2 ,..., mn 
thì số Q là rất lớn, và trên thực tế là khó có thể xác định được, thực sự như
vậy, chúng ta có bất đẳng thức sau x0'  M  S  N , có nghĩa là chúng ta có:
M  x0'  Qm1m2

mt '  N

M  x0'  Qm1m2

mt '  N  x0'

M  x0'
N  x0'
.
Q
m1 mt '
m1 mt '


Để xác định Q cần phải xác định tất cả các số nguyên trong khoảng từ
M  x0'
N  x0'
đến
.
m1 mt '
m1 mt '
N  x0' M  x0' N  M N



 1 các số khác nhau.
Có nghĩa là xác định
m1...mt ' m1...mt '
M
M

Nếu như lựa chọn tập hợp m1 , m2 ,..., mn  để thương

N
biểu diễn dưới
M

dạng nhị phân từ 129 đến 130 bít thì trên thực tế khó xác định được số Q.


13

Ví dụ 1.11:

Nhà phân phối D muốn chia sẻ S cho 5 thành viên P1,…P5, với ngưỡng
là k=3. D chọn tập hợp m1 , m2 ,..., m5   97,98,99,101,103 .
Tính M  m4 m5  10403 , N  m1m2 m3  941094 . Chọn S  571875 . D
tính ra 5 cặp mảnh bí mật (ri, mi) để phân chia cho 5 thành viên liên quan, với
tập r1 , r2 ,..., r5   60,45,51,13,19 . Bây giờ P1,P4 và P5 muốn kết hợp lại với
nhau để khôi phục S. Thì họ giải hệ phương trình đồng dư thức sau:
 x  60mod97

 x  13mod101
 x  19mod103


Giải hệ trên thu được nghiệm x0  571875  S
1.3. Nếu a là căn nguyên thủy của trƣờng Z p thì bài toán Logarit rời rạc
luôn có nghiệm
Cho G là nhóm nhân Abel, a, b  G . Bài toán tìm kiếm nghiệm của
phương trình a x  b gọi là bài toán logarit rời rạc trong nhóm G. Nghiệm x
của phương trình gọi là logarit rời rạc cơ số a của b, ký hiệu là log a b , nếu
như cơ số a cố định và nếu như nghiệm của phương trình tồn tại:
log a b  Z G , nếu như | G |  .

Bài toán logarit rời rạc có vai trò rất lớn trong ứng dụng của mật mã. Đặc
biệt quan trọng trong trường hợp G  F (q)* , với q  p , p là số nguyên tố,
 N , tức là trong trường Galois, cũng như trong trường hợp G là một nhóm

điểm của đường cong Eliptic trong trường hữu hạn.
Chúng ta xem phương trình
a x  b(mod p)



14

trong nhóm Z p* , với p là số nguyên tố. Chúng ta giả sử rằng bậc của
a(mod p) bằng p-1. khi đó phương trình giải được, và nghiệm x là một phần

tử của Z p 1 . Trong phần này chúng ta miêu tả phương pháp đơn định để xác
định nghiệm của a x  b(mod p) .
Với sự giúp đỡ của phương pháp chọn thì có thể giải phương trình
a x  b(mod p) cần O( p) lệnh số học.

Nghiệm log a b của phương trình a x  b(mod p) có thể tìm theo công
thức sau
log a b   (1  a j ) 1 b j (mod p  1)

Thuật toán tiếp theo giải phương trình a x  b(mod p) có độ phức tạp là
O( p1/2 log p) lệnh số học.

Thuật toán tƣơng hợp
Bƣớc 1. Gán H :  p1/2   1 .
Bƣớc 2. Tìm c  a H (mod p) .
Bƣớc 3. Lập bảng giá trị cu (mod p),1  u  H , sắp xếp nó.
Bƣớc 4. Lập bảng giá trị b.av (mod p),0  v  H , sắp xếp nó.
Bƣớc 5. Tìm sự trùng nhau phần tử từ bảng thứ nhất và bảng thứ hai. Để
làm điều này cu  b.av (mod p) , từ đây a Hu v  b(mod p) .
Bƣớc 6. Đưa ra giá trị x  Hu  v(mod p  1).
Kết thúc thuật toán.
Chúng ta chứng minh sự đúng đắn của thuật toán. Bất kỳ số nguyên x,
0  x  p  2 , có thể biểu diễn dưới dạng x  Hu  v(mod p  1) .



15
Ở đây 1  u  H ,0  v  H , rõ ràng rằng tập số:

H , H  1, H  2,...H  H ,2H ,2H  1,..., H 2  1,..., H 2  H
chứa trong mình tập số: 0,1,...,p 2 bởi vì H 2  p . Từ đây dẫn đến sự đúng
đắn của thuật toán. Đánh giá độ phức tạp của thuật toán cũng rõ ràng đúng,
bởi vì tập từ N phần tử có thể sắp xếp cần O( N log N ) lệnh số học.
Logarit rời rạc trong trƣờng nguyên tố
Trong phần này chúng ta xem thuật toán giải phương trình
a x  b(mod p)

ở đây p là số nguyên tố. Chúng ta cho rằng a(mod p) có bậc là p-1.
Thuật toán Adleman
Tầng 1. Hình thành cơ sở nhân tử, bao gồm tất cả các số nguyên tố q,
q  B  econst

log p log log p

Tầng 2. Bằng cách chọn lựa chúng ta tìm số tự nhiên ri sao cho
a ri   q iq (mod p) , q là số nguyên tố


q B

Từ đây dẫn đến
ri  iq log a q(mod p  1) (*), q là số nguyên tố
q B

Tầng 3. Chọn số lượng đủ lớn biểu thức (*), giải hệ phương trình tuyến tính
thu được ứng với các ẩn log a q logarit rời rạc của phần tử của cơ sở nhân tử.

Tầng 4. Bằng cách lựa chọn chúng ta tìm ra một giá trị của r, sao cho
a r  b   q q  p1... pk (mod p)


q B

ở đây p1 ,..., pk là các số nguyên tố với độ lớn “trung bình”, có nghĩa
B  pi  B1 , với B1  econst

log p log log p


16

Tầng 5. Bằng cách tính toán tương tự như tầng 2 và 3 của thuật toán, tìm ra
logarit rời rạc log a pi đối với các số nguyên tố p1 ,..., pk ở tầng 4.
Tầng 6. Xác định giá trị cần tìm log a b :
k

log a b  r    q log a q   log a pi (mod p  1) .
q B

i 1

Kết thúc thuật toán.
Ví dụ 1.12 :
Tìm số n sao cho 2 x  74(mod163)
Ở đây a=2, b=74, p=163, p  1  162  2.34
Đặt q=3. Khi đó k=4. Ngoài ra c  2


p 1
3

 254  104(mod163) , chúng ta có thể

biểu diễn thuật toán qua bảng sau:
I

0

1

2

3

ri

1

58

1

104

ti

0


2

0

1

ui 1

1

7

7

34

Từ đây x  34(mod81) .
Bây giờ chọn q  2 . Lúc này k  1, l  81 và c  2
tự ta lập bảng:
I

0

ri

-1

ti

1


ui 1

2

p 1
2

 1(mod163) . Tương


17
Từ đây chúng ta có x  2(mod 2) .
Từ x  34(mod81) và x  2(mod 2) suy ra x  34(mod162) .
Ví dụ 1.13 :
Xét vành số Z p , với p là số nguyên tố, vậy ta có Z p = GF(p). Tất cả các
phần tử a  0 của trường tạo thành nhóm nhân: Z p  a 1  a  n  1 .
Nếu cấp của a bằng p thì ta nói a là căn nguyên thủy của Z p .
Xét bài toán thuận: Cho y  a x .
Cho p = 17, a =2. Ta tính y  a x mod19 với x  Z p  GP( p) , dễ dàng
thấy 2 là căn nguyên thủy ta có bảng giá trị:
Tính y  2 x mod19
X

1 2 3 4

5

6 7


8 9

10 11 12 13 14 15 16 17 18

2 x 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 lên a x sẽ đi qua hết các phần tử trong
vành Z p .
 Từ phần tử nguyên thủy a = 2 đã 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:
b  ai mod n với  i,  n    1

Vậy tập các phần tử nguyên thủy của Z19 là: 2,13,14,15,3,10
 Các phần tử nguyên thủy tạo thành các cặp nghịch đảo:
2  101 do (2.10)mod19  1
13  31 do (3.13)mod19  1

14  151 do 14.15 mod19  1


18

Xét bài toán ngược: y  log a x. a, x  Z *p .

Dựa trên tính chất các hàm logarit ta có:
y  log a bc   log a b  log a c  mod( p  1)
b
  log a b  log a c  mod( p  1)
c
y  log a1 x   log a x  p  1  log a x

y  log a

y  log a 1  p  1  0

Ví dụ 1.14:
Cho p=19, a = 2, ta tính y  log a x mod19, x  Z p  GF p  . Từ bảng đã
tính ở trên ta có các giá trị ngược:

Do 218  1 vậy lên ta có log 2 1  18 ; 21  2 vậy lên ta có log 2 2  1 tương tự ta
tính được các phần tử y  log 2 x khác.
1.4. Hệ mã khoá công khai
1.4.1. Mã khoá công khai RSA
RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở
MIT (Trường Đại học Công nghệ Massachusetts) vào năm 1977. RSA là mã
công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay. Nó dựa
trên các phép toán lũy thừa trong trường hữu hạn các số nguyên theo modulo
nguyên tố. Cụ thể, mã hóa hay giải mã là các phép toán luỹ thừa theo modulo
số rất lớn. Việc thám mã, tức là tìm khóa riêng khi biết khóa công khai, dựa
trên bài toán khó là phân tích một số rất lớn đó ra thừa số nguyên tố. Nếu
không có thông tin gì, thì ta phải lần lượt kiểm tra tính chia hết của số đó cho


19


tất cả các số nguyên tố nhỏ hơn căn của nó. Đây là việc làm không khả thi.



Người ta chứng minh được rằng, phép lũy thừa cần 0  log n 

3

 phép toán,

nên có thể coi lũy thừa là bài toán dễ.
Cần chú ý rằng ở đây ta sử dụng các số rất lớn khoảng 1024 bit, tức là cỡ
10350. Tính an toàn dựa vào độ khó của bài toán phân tích ra thừa số các số
lớn. Bài toán phân tích ra thừa số yêu cầu 0  elog n log log n  phép toán, đây là bài
toán khó.
Mã công khai RSA gồm hai giai đoạn: khởi tạo khóa RSA và giai đoạn
mã hóa/giải mã.
1.4.1.1 Các bƣớc thực hiện mã hóa RSA

Khởi tạo khóa RSA.
+) Mỗi người sử dụng A tạo một cặp khóa công khai, khóa riêng như
sau:
+) Chọn ngẫu nhiên hai số nguyên tố lớn p và q khác nhau.
+) Tính số N làm modulo của hệ thống: N = p.q
Ta đã biết Ф(N) = (p - 1)(q - 1)
+) Chọn ngẫu nhiên khóa mã e làm khóa công khai, sao cho: 1 < e < ФN)
và gcd(e,Ф(N)) = 1, tức là e và Ф(N) là hai số nguyên tố cùng nhau.



×