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

Một số vấn đề về bảo mật thư điện tử

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.36 MB, 76 trang )

1

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN






TRỊNH HÀ TRANG








MỘT SỐ VẤN ĐỀ
VỀ BẢO MẬT THƯ ĐIỆN TỬ












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







Hà Nội – Năm 2014
2

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN






TRỊNH HÀ TRANG








MỘT SỐ VẤN ĐỀ

VỀ BẢO MẬT THƯ ĐIỆN TỬ


Chuyên ngành: Bảo đảm toán học cho máy tính và HTTT
Mã số: 60 46 35








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

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS. Tôn Quốc Bình




Hà Nội – Năm 2014
3

MỤC LỤC
MỤC LỤC 3

DANH MỤC CÁC BẢNG BIỂU - HÌNH VẼ 6


MỞ ĐẦU 7

Chương 1 - TỔNG QUAN VỀ BẢO MẬT THƯ ĐIỆN TỬ 9

1.1.

Khái niệm về thư điện tử 9

1.2.

Sơ lược về bảo mật thông tin 10

1.3.

Các hệ thống mật mã 11

1.3.1.

Sơ đồ hệ mật mã 11

1.3.2.

Mã hóa theo khối và mã hóa theo dòng 12

1.3.3.

Mã khóa đối xứng và mã khóa công khai 13

1.4.


Một số hệ mật mã khóa công khai 14

1.4.1.

Sự ra đời của hệ mật mã khóa công khai 14

1.4.2.

Hệ mật mã RSA 15

1.4.3.

Hệ mật mã Rabin 17

Chương 2 - MỘT SỐ CẢI TIẾN PHƯƠNG PHÁP MÃ HÓA KHÓA CÔNG KHAI
RABIN 22

2.1. Một số khái niệm và định nghĩa 22

2.1.1. Thặng dư bình phương 22

2.1.2. Ký hiệu Legendre 23

2.1.3. Ký hiệu Jacobi 23

2.1.4. Phương trình Rabin 24

2.1.5. Định lý số dư Trung Quốc 26

2.2. Cải tiến của Shimada 26


2.2.1. Sơ đồ hệ mật mã Shimada 26

2.2.2. Quá trình tạo khóa 27

2.2.3. Giải thuật mã hóa 27

2.2.4. Tính đúng đắn của thuật toán 28

2.3. Sơ đồ cải tiến của Chen-Tsu 30

2.4. Sơ đồ cải tiến của THA 33

4

2.4.1. Sơ đồ hệ mật mã 34

2.4.2. Giải thuật THA 34

2.4.3. Chứng minh tính đúng đắn 35

2.5. So sánh các sơ đồ mã hóa cải tiến phương pháp mã hóa khóa công khai
Rabin 36

Chương 3 - KỸ THUẬT GIẤU TIN TRONG ẢNH VÀ THỦY VÂN TRÊN ẢNH
SỐ 39

3.1.

Một số khái niệm về giấu tin trong ảnh 39


3.1.1.

Khái niệm về giấu tin 39

3.1.2.

Giấu tin trong ảnh 39

3.2.

Các kỹ thuật giấu tin trong ảnh nhị phân 40

3.2.1.

Kỹ thuật giấu tin Chen - Pan – Tseng 41

3.2.2.

Kỹ thuật giấu tin Chang - Tseng - Lin 49

3.2.3.

Kỹ thuật giấu tin THA 52

3.2.4.

So sánh lược đồ THA với CPT và CTL 57

3.3.


Thủy vân dễ vỡ 60

3.3.1.

Ý tưởng 60

3.3.2.

Thuật toán nhúng thủy vân 61

3.3.3.

Thuật toán xác thực 62

3.3.4.

Một số nhận xét 63

Chương 4 - ỨNG DỤNG MÃ HÓA VÀ GIẤU TIN TRONG VIỆC BẢO MẬT
THƯ ĐIỆN TỬ 64

4.1. Bảo mật thư điện tử trên môi trường Internet bằng phương pháp giấu tin 64

4.2. Đề xuất phương án áp dụng THA trên ảnh màu: 66

4.3. Phần mềm minh họa 67

4.3.1. Quy trình gửi thư 67


4.3.2. Quy trình nhận thư 67

4.3.3. Giao diện 67

KẾT LUẬN 74

1.

Kết luận 74

5

2.

Hướng phát triển 74

TÀI LIỆU THAM KHẢO 75

6

DANH MỤC CÁC BẢNG BIỂU - HÌNH VẼ
Bảng 2.1: Độ phức tạp tính toán của các thuật toán giải mã 5
Bảng 3.1- So sánh các tính chất của ba lược đồ 56
Bảng 3.2 - Giá trị PSNR của các ảnh sau khi giấu tin 57
Hình 1.1. Mô hình client/server 7
Hình 3.1. Minh hoạ thuật toán CPT trường hợp thay đổi 1 bit 43
Hình 3.2. Minh hoạ quá trình giải mã thông tin đã giấu 44
Hình 3.3. Thí dụ minh hoạ trường hợp thay đổi hai bit 45
Hình 3.4. Minh hoạ thuật toán CTL 48


Hình 3.5. Mô hình quá trình nhúng thuỷ vân 58
Hình 3.6. Mô hình quá trình xác thực thuỷ vân 59
Hình 4.1. Mô hình mã hóa và giấu tin 63
Hình 4.2. Mô hình thủy vân dễ vỡ 63
Hình 4.3. Mô hình xác thực tính toàn vẹn của ảnh 64
Hình 4.4. Mô hình khôi phục tệp dữ liệu 64














7

MỞ ĐẦU
Ngày nay, mạng Internet đã trở nên thiết yếu trong mọi lĩnh vực của đời sống
xã hội và nhanh chóng hiện diện rộng khắp với những mục đích đa dạng: từ sản
xuất, kinh doanh, ứng dụng khoa học kỹ thuật đến giải trí đơn thuần. Ứng dụng
quan trọng và phổ biến hàng đầu của Internet là thư điện tử.Thực tiễn mỗi ngày cho
thấy,trên mạng Internetđang diễn ra giao dịch hàng tỷ đô la (trên dưới 2 ngàn tỷ
USD mỗi năm)thông qua thư điện tử. Tuy nhiên dịch vụ phổ biến này cũng gây vô
số rắc rối cho người sử dụng và các doanh nghiệp khi mà một khối lượng thông tin

quan trọng như thông tin về khách hàng, giới thiệu các sản phẩm, dịch vụ hữu ích
cho khách hàng, đơn đặt mua hàng, thông tin cần thiết trước một giao ước ; hàng
hóa và tiền bạc khổng lồ đang được chuyển giao qua đó. Và những thông tin quan
trọngnày thường là những dữ liệu đính kèmtrong giao dịch thư điện tử e-mail. Đây
quảthực là một mảnh đất mầu mỡ dễ bị nhòm ngó và tấn công.
Làm thế nào để khi gửi e-mail mà không ai khác ngoài người nhận có thể đọc
được? Làm thế nào để thông tin khi truyền đi không bị mất hay bị đánh tráo? Hay
làm thế nào người nhận biết được thông tin mà họ nhận được là chính xác hay
không, nguyên vẹn hay đã bị thay đổi? Vì vậy, vấn đề bảo mật thư điện tử trong khi
trao đổi thông tin trên mạng đãđược đặt ra. Đồng thời mong muốn này cũng đã kích
thích nhiều người và các nhóm áp dụng các nguyên tắc như: sử dụng mật khẩu, mã
hóa dữ liệu, giấu tin để đem lại một e-mail an toàn.
Xuất phát từ nhu cầu thực tế đó, em chọn đề tài luận văn “MỘT SỐ VẤN ĐỀ
VỀ BẢO MẬT THƯ ĐIỆN TỬ” nhằm tìm hiểu các giải pháp bảo mật và góp phần
đưa ragiải pháptránh chocác thông tin quan trọng của dữ liệu đính kèm thư điện tử
bị xem trộm hoặc bị thất thoát, giúp người sử dụng đảm bảoan toàn thông tin khi sử
dụng e-mail.
Em xin gửi lời cảm ơn tới các thầy cô giáo trong khoa Toán – Cơ – Tin học,
trường Đại học khoa học tự nhiên, Đại học Quốc gia Hà Nội; đặc biệt là các thầy cô
giáo trong bộ môn Tin học đã giúp đỡ em hoàn thành đề tài.
Em xin chân thành cảm ơn thầy TS.Tôn Quốc Bình đã tận tình hướng dẫn em
hoàn thành luận văn này.
8

Trong quá trình thực hiện đề tài vẫn còn nhiều thiếu sót. Kính mong các thầy
cô giáo cùng các bạn đóng góp ý kiến để luận văn hoàn thiện hơn.
Em xin chân thành cảm ơn!
9

Chương1- TỔNG QUAN VỀ BẢO MẬT THƯ ĐIỆN TỬ

1.1. Khái niệm về thư điện tử
Ngày nay, Internet đã phát triển rộng rãi trên khắp toàn cầu do đó hệ thống thư
điện tử hoàn toàn có khả năng thay thế hệ thống thư truyền thống. Vậy thưđiện tử là
gì? Nói một cách đơn giản, thưđiện tử là một thông điệp gửi từ máy tính này đến
máy tính khác trên mạng máy tính mang nội dung cần thiết từ người gửi đến người
nhận.
Hệ thống thư điện tử có những ưu điểm vượt trội so với hệ thống thư truyền
thống như:
 Gửi cùng một bức thư cho nhiều người cùng một lúc mà không phải viết nhiều
lần.
 Gửi thư đi khắp nơi trên thế giới nhanh chóng và dễ dàng.
 Gửi thư bất cứ lúc nào, bất cứ đâu và người nhận có thể đọc nó trong sự thuận
tiện nhất với họ.
 Tiết kiệm được rất nhiều thời gian và tiền bạc.
Với những ưu điểm trên, thư điện tử đã trở thành một dịch vụ được sử dụng
rộng rãi nhất trên Internet.
Thư điện tử hoạt động dựa trên mô hình client/server. Nghĩa là, một email sẽ
được tạo bởi một Mail User Agent (MUA) và được gửi đến một mail server, sau đó
mail server sẽ chuyển email đến mail server của người nhận như mô hình sau:

Hình 1.1. Mô hình client/server
10

Vớilượng thông tin được truyền quamạng như vậy thì nguy cơ thông điệp bị
truy cập trái phép rất dễ xảy ra. Vì vậy vấn đề bảođảm an toàn và bảo mật thông tin
cho thưđiện tử là rất cần thiết.
Đểđảm bảo an toàn và bí mậthay bảo mậtcho một thông điệp truyềnđi, phương
pháp truyền thống thườngđược sử dụng là mã hóa thông điệp theo một quy tắc
nàođóđã được thỏa thuận trước giữa người gửi và người nhận.
1.2. Sơ lược vềbảo mật thông tin

Bảo mật thông tin đã được sử dụng từ 400 năm trước công nguyên trong việc
trao đổi tin. Người Hi Lạp đã dùng một dải băng dài và mảnh quấn quanh một khối
hình trụ tròn xoay rồi viết chữ lên đó theo cách thức thông thường từ trái sang phải
và từ trên xuống dưới. Mẩu tin được chuyển đi dưới dạng dải băng và chỉ có thể đọc
ra được khi biết được bán kính của thiết diện khối trụ.
Trong thời đại La Mã,với mong muốnkhông cho kẻ địch biết được mục đích
của mình, nhà quân sự chiến lược tài ba Cesarđã sử dụng phép thay thế các ký tự
trong các thông báo,nghĩa là mỗi ký tự được thay thế bởi ký tự đứng sau nó 3 vị trí
trong bảng chữa cái alphabet nghĩa là chữ A được thay thế bởi chữ D, chữ B được
thay thế bởi chữ E, . Với cách thay thế các ký tự như vậy, ông đã mã hóa đượccác
thông báo của mình mà người khác không thể nào biết đượcnhằm đảm bảo an toàn
cho cácthông báo.
Qua nhiều thế kỷ phát triển, bảo mật thông tin không chỉ dùng phục vụ cho
các bí mật quân sự (gián điệp, chiến tranh )như thời kỳ của nhà quân sự thiên tài
Cesar đã áp dụng mà còn dùng trong ngoại giao, kinh tế và thương mại khi mà có
sự xuất hiện của máy tính. Các tài liệu, các thông tin quan trọng đều được số hóa
lưu trữ và xử lý nhiều trên máy tính. Với sự xuất hiện của các hệ thống máy tính cá
nhân và mạng máy tính, các tài liệu này được truyền đi trong một môi trường mà
mặc định là không an toàn. Do đó nảy sinh yêu cầu về an toàn bảo mật đối với các
thông tin được lưu trữ, xử lý và truyền đi giữa các máy tính. Một công cụ cơ bản
thiết yếu của bảo mật thông tin đó chính là mật mã hay mã hóa dữ liệu.
Lịch sử của mật mã học được đánh dấu vào năm 1949 khi Claude Shannon
đưa ra lý thuyết thông tin. Sau thời kỳ này một loạt các nghiên cứu quan trọng của
11

nghành mật mã học đã được thực hiện như các nghiên cứu về mã khối, sự ra đời của
các hệ mã mật khóa công khai và chữ ký điện tử.
Vào đầu những năm 1970 là sự phát triển của các thuật toán mã hóa khối đầu
tiên, hệ mã Luciphernăm 1974. Sau đó, hệ mã khối Lucipherđược cải tiến thành hệ
chuẩnmã hóa dữ liệu DESvào năm 1975, một hệ mã khối đối xứng với chìa khóa

dài 56 bits, kết hợp luân phiên 16 phép thay thế với 15 phép hoán vị. DES được
công bố bởi Ủy ban Tiêu chuẩn quốc gia Hoa Kỳ vào năm 1977 và đượcứng dụng
cho tới đầu những năm 90.
Cuối những năm 1970, sự phát triển của các thuật toán mã hóa khóa công khai
của Whitfield Diffie và Martin Hellman làm nền tảng cho sự ra đời của các hệ mã
khóa công khai. Hệ mã công khai nổi tiếng nhất và cũng là thuật toán được ứng
dụng thực tế nhiều nhất là hệ mã RSA, được đặt tên theo các chữ cái đầu của ba tác
giả Rivest, Shamir và Adleman.
Tuy nhiên các hệ mã mật khóa công khai được đánh giá là vẫn chậm, do đó
các hệ mã khối vẫn đượctiếp tục phát triển thành các hệ mã khối mới thay thế cho
DES như IDEA, AES hoặc 3DES (một cải tiến của DES) ở cuối thế kỷ 20.
Sự kiện lớn đối với ngành mật mã học liên quan tới các hàm băm MD do Ron
Rivest phát triển và SHA1 được nghiên cứu bởi nhóm các nhà khoa học người
Trung Quốc,làm cho các hãng viết phần mềm lớn, các nhà mật mã học khuyến cáo
sử dụng các hàm băm mạnh như SHA-256, SHA-512 trong các ứng dụng.
Ngày nay không dễ tìm thấy các ứng dụng trên máy tính mà lại không sử dụng
đến các thuật toán mật mã học chẳng hạn các thuật toán mã hóa mật khẩu người
dùng bằng một hệ mã hoặc một hàm băm nào đó đều được sử dụng trong các ứng
dụng cho máy tính cá nhân tới các chương trình hệ thống, các ứng dụng mạng hoặc
cơ sở dữ liệu. Các hệ mật mã ngày càng đóng vai trò tích cực cho việc tạo môi
trường an toàn cho người dùng.
1.3. Các hệ thống mật mã
1.3.1. Sơ đồ hệ mật mã
Giả sử người gửi A muốn gửi một thông điệp Pđến người nhận B, để giữ bí
mậtcho thông điệp P, A sử dụng phép biến đổilên thông điệp Ptức là mã hóa P để
12

tạo ra thông điệp được mã hóa không thể hiểu đượcC.Thay cho việc gửi P, A sẽ gửi
cho B bảnmã hóa C.Người nhận B nhận được C và dùng phép biến đổi lên bản mã
C để khôi phục lại thông điệpP ban đầu tức là giải mã C.Trước khi truyền tin bảo

mật, người gửi A, người nhận B sẽ cùng thỏa thuận trước với nhau một thông tin bí
mật gọi là khóa K. Khóa K chính là thông số điều khiển cho phép biến đổi trong quá
trình mã hóa và giải mã.
Các phép biến đổi được sử dụng trong mô hình truyền tinthuộc về một hệ mật
mã nào đó.
Sơ đồ hệ mật mã được định nghĩa như sau:

Định nghĩa:Sơ đồ hệ mật mã là một bộ 5
S={P,C,K,E,D}
thỏa mãn các điều kiện sau đây:
(1) P: là một tập hữu hạn các ký tự bản rõ
(2) C: là một tập hữu hạn các ký tự bản mã
(3) K: là một tập hữu hạn các khóa
(4) Đối với mỗi k∈K, có một quy tắc mã hoá e

∈Evà một quy tắc giải
mãtương ứng d

∈D. Với mỗi e

:P→Cvà d

:C→P là những hàm mà d

(
e

(x
)
=

x cho mọi bản rõ x∈P.
Các tập ký tự bản rõ và bản mã thường dùng là các tập ký tự của ngôn ngữ
thông thường như tiếng Việt, tiếng Anh gồm 26 ký tự- ký hiệu A, A = {a, b, c, , x,
y, z }; tập ký tự nhị phân B chỉ gồm hai ký tự 0 và l; tập các số nguyên không âm bé
hơn một số n nào đó Z
n
= {0, 1, 2, , n-1}.
1.3.2. Mã hóa theo khối và mã hóa theo dòng
Dựa trên cách thức xử lý đầu vào của thuật toán tức là bản rõ, có hai loại thuật
toán mã hóa sau:

Các thuật toán mã hóa khối (DES, AES …) xử lý bản rõ dưới các đơn vị cơ bản
là các khối có kích thước giống nhau.

Các thuật toán mã hóa dòng (RC4 …) coi bản rõ là một luồng bit, byte liên tục.
a) Mã hóa theo khối
Quá trình mã hóa của các hệ mã khối có đặc điểm chung là làm việc với các
13

khối dữ liệu thường ở dạng xâu bit có kích thước khác nhau, tối thiếu là 64 bit.Khóa
của hệ mã cũng là một xâu bit có độ dài cố định như DES là 56 bit, các hệ mã khác
là 128, 256, hoặc 512 bit. Hoạt động của các hệ mã khối thường được thực hiện qua
một số lần lặp, mỗi lần sẽ sử dụng một khóa con được sinh ra từ khóa chính.
Giả sử bản rõ muốn mã hóa dãy ký tự X∈P. Tacắt X thành các
khốiX

,…X

,mỗi khối có độ dài l, khối cuối cùng có thể có độ dài nhỏ hơn lvìluôn
có thểbổ sung vào phần cuối của khối một số ký tự qui ước nào đó để khối cuối

cùngcó độ dài l.
Quy tắc mã hóa bản rõ X:
e

(
X
)
=e

(
X

…X

)
=e

(
X

)
…e

(X

)
Đặt Y=e

(
X


)
…e

(X

), ta có thể viết Y=Y

…Y

với Y

=e

(X

). Do đó,
quy tắc giải mã ra bản rõ X:
d

(
Y
)
=d

(
Y

…Y


)
=X

…X

=X
b) Mã theo dòng
Để mã hóa theo dòng thì cần phải xác định một dòng khóa, tức là một phần tử
K = K
l
K
m
với dòng khóa đó xác định với mọi bản rõ X = X
1
X
m
P, bản mã
tương ứng là:
e

(X)=e

(X

X

)=e


(X


) e


(X

)
Giải mã Y = Y
K
(X), ta được:
d

(
Y
)
=d


e


(X

)…d



e



(
X

)

=X

…X

=X
Để sử dụng cách lập mật mã theo dòng, ngoài sơ đồ mật mã gốc còn phải có
một dòng khóa, tức là một dãy có độ dài tùy ý các ký tự khóa. Đó thường là các dãy
các ký tự khóa được sinh ra bởi một bộ “tạo dãy ngẫu nhiên” nào đó. Trong các ứng
dụng thực tế, người ta thường dùng các mã theo dòng có sơ đồ mật mã gốc là sơ đồ
Vernam với P = C = K = {0,1}và các hàm lập mã và giải mã được xác định bởi
e
K
(X) = (X+K) mod 2, d
K
(Y) = (Y+K) mod 2; dòng khóa là dãy bit ngẫu nhiên
được sinh ra bởi một bộ tạo dãy bit ngẫu nhiên nào đó.
1.3.3. Mã khóa đối xứng và mã khóa công khai
Theo định nghĩa về sơ đồ mật mã, cứ mỗi lần truyền tin bảo mật, cả
14

người gửi A và người nhận B phải cùng thỏa thuận trước với nhau một khóa
chung K, sau đó người gửi dùng e
K
để lập mật mã cho thông báo gửi đi.
Người nhận dùng d

K
để giải mã bản mật mã nhận được. Người gửi và người
nhận cùng có một khóa chung K, được giữ như bí mật riêng của hai người,
dùng cả cho lập mật mã và giải mã. Hệ mật mã sử dụng khóa K chung cho lập
mã và giải mã, được gọi là mật mã khóa đối xứng. Hệ mật mã này đã được sử
dụng từ hàng ngàn năm nay và đôi khi cũng gọi là mật mã truyền thống.
Tuy nhiên, về nguyên tắc hai hàm lập mã và giải mã là khác nhau, không
nhất thiết phải phụ thuộc cùng một khóa. Nếu ta xác định mỗi khóa K gồm có
hai phần K = (K¢, K²), K¢ dành cho việc lập mật mã e

, K² dành cho việc giải
mã d

, các hàm lập mã và giải mã thỏa mãn hệ thức d

(e

(X)) = X với
XP, thì được một hệ mật mã khóa phi đối xứng. Như vậy, trong một hệ
mật mã khóa phi đối xứng, các khóa lập mã K¢ và giải mã K² là khác
nhaunhưng có quan hệ với nhau. Trong hai khóa đó, khóa cần phải giữ bí mật
là khóa giải mã K², còn khóa lập mã K¢ có thể được công bố công khai; tuy
nhiên điều đó chỉ có ý nghĩa thực tiễn khi việc tìm ra K" là rất khó khăn tới
mức gần như không thể thực hiện được khi biết K¢.
Một hệ mật mã khóa phi đối xứng có tính chất nói trên, trong đó khóa
lập mật mã K¢của mỗi người tham gia đều được công bố công khai, được gọi
là hệ mật mã khóa công khai. Khái niệm mật mã khóa công khai mới được ra
đời vào giữa những năm 1970, và ngay sau đó đã trở thành một khái niệm
trung tâm của khoa học mật mã hiện đại.
1.4. Một số hệ mật mã khóa công khai

1.4.1. Sự ra đời của hệ mật mã khóa công khai
Sự ra đời của hệ mật mã khóa công khai là một bước ngoặt trong lịch sử mật
mã. Thời điểm khởi đầu của bước ngoặt đó là sự xuất hiện ý tưởng của Whitfield
Diffie và Martin Hellmanđược công bố trong bài báo “Multiuser cryptographic
techniques” vào tháng 6 năm 1976 tại Hội nghị quốc gia hàng năm của AFIPSHoa
15

Kỳ. Ngay sau đó, công việc tìm kiếm những thể hiện cụ thể có khả năng ứng dụng
trong thực tế đã bắt đầu thu hút sự quan tâm của nhiều chuyên gia.
Một năm sau, năm 1977, R.L.Rivest, A.Shamir và L.M.Adleman đề xuất một
hệ cụ thể về mật mã khóa công khai mà độ an toàn của hệ dựa vào bài toán khó
“phân tích số nguyên thành thừa số nguyên tố”, hệ này về sau trở thành một hệ nổi
tiếng và mang tên là hệ RSA vàđược sử dụng rộng rãi trong thực tiễn bảo mật an
toàn thông tin. Cũng vào thời gian đó, M.O. Rabin cũng đề xuất một hệ mật mã
khóa công khai dựa vào cùng bài toán số học khó nói trên.
Sau đó, nhiều hệ mật mã khóa công khai đãđược đề xuất. Nổi tiếng và được
quan tâm nhiều là các hệ: hệ McEliece được đưa ra năm 1978 dựa trên độ NP-khó
của bài toán giải mã đối với các hệ mã cyclic tuyến tính; hệ Merkle-Hellman dựa
trên tính NP-đầy đủ của bài toán xếp ba lô; hệ mật mã nổi tiếng ElGamal dựa trên
độ khó của bài toán lôgarit rời rạc, hệ này được mở rộng và phát triển lên thành
nhiều hệ tương tự dựa trên độ khó của các cấu trúc nhóm cyclic hữu hạn, nhóm các
điểm nguyên trên đường cong eliptic, v.v
1.4.2. Hệ mật mã RSA
Hệ mã RSA được ba tác giả Rivest, Shamir và Adleman phát minh vào năm
1977.Đây là thuật toán mã hóa nổi tiếng nhất và cũng là thuật toán được ứng dụng
trong thực tế nhiều nhất.
a) Sơ đồ hệ mật mã RSA
S=
{
P,C,K,E,D

}

Trong đó:
- P = C = Z
n

- K = (K¢, K²)
K¢ = (N, e) - là tập các giá trị dùng làm khóa công khai
K² = (d, p, q) - là tập các giá trị dùng làm khóa bí mật
- E: K¢ x P  C (thuật toán mã hóa)
y=E
(
K¢,x
)
=x

(
modN
)
, x∈P
- D: K² x C  P (thuật toán giải mã)
16

x=D
(
K²,x
)
=y

(

modN
)
, y∈C
b) Quá trình tạo khóa cho hệ mã RSA
Để cài đặt RSA, ban đầu mỗi người dùng sinh khóa công khai và khóa bí mật
của mình bằng cách:

Chọn hai số nguyên tố lớn ngẫu nhiên khác nhau p, qvà hai số này đều được giữ
bí mật.

Tính N=p∗q, ∅
(
N
)
=
(
p−1
)
∗(q−1)

Chọn e <N sao cho UCL
(
e,∅(N)
)
=1, e được gọi là số mũ lập mã. Khóa công
khai K¢ = (N, e)

Tính d≡e

(mod∅(N)), d được gọi là số mũ giải mã. Khóa bí mật K² = (d, p,

q).
c) Giải thuật mã hóa RSA

Mã hóa
Giả sử người dùng B đã công bố khóa công khai (N,e) của mình và người A
muốn gửi thông điệp M đến B; A tính bản mã C như sau:
C=M

modN
A sẽ gửi C cho B.

Giải mã
B nhận được bản mã C. Từ bản mã C, B giải mã bằng cách tính M như sau:
M=C

modN
Và khôi phục được thông điệp M.
d)Tính đúng đắn của thuật toán
Cần chứng minh: D(K", E(K', x)) = x (1.1)
Do d∗e=1mod∅(N) nên d∗e=1+t∗∅(n)
Mặt khác: D

K
²
,E
(
K
¢
,x
)


=x

modNnên:
D

K
²
,E
(
K
¢
,x
)

=x
∗∅()
modN (1.2)
Chia 2 trường hợp: x nguyên tố với N và x không nguyên tố với N

Trường hợp 1: x nguyên tố với N
Khi đó theo định lý Fermat:
17

x
∅()
=1(modN)
Từ đó lần lượt suy ra:
x
∗∅()

=1(modN)
x
∗∅()
=1(modN)
Cùng với (1.2) suy ra (1.1)

Trường hợp 2: x không nguyên tố với N
Tức là tồn tại u > 1 sao cho:x chia hết cho u (1.3)
N=p∗qchia hết cho u (1.4)
Do p và q là các số nguyên tố lẻ khác nhau nên suy ra: u=p hoặc u=q.
o Xét u= p, ta có:
x chia hết cho p
x nguyên tố với q (vì x<=∗q)
Từ (1.3), suy ra:x
∗∅()
=x(modp)(1.5)
(vì cả hai vế đều chia hết cho p)
Từ(1.4), lần lượt suy ra:
x∗q

=1(modN), vìx∈Z



x
∗()∗()
=1(modq)
x
∗∅()
=1(modq)

x
∗∅()
=x(modq)
Kết hợp điều này với (1.5) suy ra: (x
∗∅
(

)

−x)đồng thời chia hết cho p và
q.
Mặt khác p, q là các số nguyên tố lẻ khác nhau nên (x
∗∅
(

)

−x) cũng chia
hết cho =∗, tức là:
x
∗∅
(

)

=x(modp)
Từ đây và (1.2) suy ra (1.1).
o Xét u = q: tương tự trường hợp u = p
Vậy (1.1) được chứng minh.
1.4.3. Hệ mật mã Rabin

a) Sơ đồ hệ mật mã Rabin
18

S = {P, C, K, E, D }
Trong đó:
- P, C = Z
N
; N = p*q (p và q là 2 số nguyên tố có tính chất p  3 mod 4; q  3
mod 4)
- K = (K', K")
K' = (N, b) - tập các giá trị dùng làm khóa công khai
K" = (p, q) - tập các giá trị dùng làm khóa bí mật
- E : K' x P  C (thuật toán mã hóa)
y = E (K', x) = x(x+b) mod N
- D : K" x C  P (thuật toán giải mã)
x = D (K", y) = (
24
2
bb
y 
) mod N
b) Quá trình tạo khóa cho hệ mã hóa Rabin
Mỗi bên tạo 1 khoá công khai và 1 khoá bí mật tương ứng. Bên nhận B sẽ làm
các việc sau:

Tạo 2 số ngẫu nhiên lớn và khác nhau p và q, p gần bằng q và có dạng 3 mod 4.

Tính N=p∗q

Chọn b, 0≤b<


B gửi khóa công khai K¢ = (N,b) cho bên gửi A. Khóa bí mật K
²
= (p, q) dùngđể
giải mã.
c) Giải thuật mã hóa khóa công khai Rabin

Mã hoá
Giả sử A dùng khóa công khai N mà B đã gửi cho A, mã hoá thông điệp để
gửi cho B như sau:
Bước 1: Tính C = x(x+b) mod N
Bước 2: Gửi bản mã hoá C cho A.

Giải mã
D : K" x C P
x = D (K", y) =


y+



−



modN
19



Đặt: c=y+




y=x
(
x+b
)
modN
c=x
(
x+b
)
+



modN=(x+


)

modN
(x+


)

=cmodN


Đặt z=

x+



modN
Khi đó : z

=x+




modN
mà (x+


)

=cmodN
nên : z

=cmodN

Để giải mã ra bản rõ P, ta cần tìm z bằng cách giải phương trình sau :
z

=cmodN

o Nếu z = 0x=

−



modN
o Nếu 1 < z <N, do N =p*q, nên suy ra:
z

=cmodN

z

=cmodp
z

=cmodq


Theo định lý Fermat: nếu p là số nguyên tố thì c

=1modp
Theo tiêu chuẩn Euler: khi p là số nguyên tố thì a là thặng dư bậc 2 mod p nếu
và chỉ nếu: a


=1modp
Vì p là số nguyên tố và c là thặng dư bậc 2 mod p, nên ta có:
c



=1modp
Tương tự q là số nguyên tố và c là thặng dư bậc 2 mod q, nên :
c


=1modq
Do đó :
c


=c


=c.c


=c.
(
1modp
)
=cmodp
c


=c


=c.c



=c.
(
1modq
)
=cmodq
Theo giả thiết p  3 mod 4; q  3 mod 4 nên





là các số nguyên tố.
Nên ta có:
20


c




=c


=cmodp

c





=c


=cmodq
Nếu đặt: u=c


và v=c


thì:
u

=cmodp
Hoặc c =u

modp
v

=cmodq
Hoặc c=v

modq
Do vậy, hệ phương trình

z


=cmodp
z

=cmodq



z

=u

modp
z

=v

modq


Như vậy, để giải phương trình z

=cmodN thì cần giải 4 hệ phương trình
đồng dư tương ứng sau đây:
(I)

z≡umodp
z≡vmodq


(II) 

z≡umodp
z≡−vmodq


(III)

z≡−umodp
z≡vmodq


(IV)

z≡−umodp
z≡−vmodq


Giải 4 hệ phương trình đồng dư trên, ta sẽ thu được 4 nghiệm z
1
, z
2
, z
3
, và z
4
.
Thay 4 nghiệm này vào công thức:
x=

z−
b

2

modN
ta sẽ nhận được 4 giá trị x
1
, x
2
, x
3
, x
4
tương ứng.

Để nhận được bản rõ P từ bản mã C, B phải thực hiện theo các bước sau:
Bước 1: Tính =y+




Bước 2: Tính u=c


modp
Bước 3: Tính v=c


modq
21

Bước 4: Tìm nghiệm của hệ phương trình đồng dư


z≡±umodp
z≡±vmodq


thu được 4 nghiệm z
1
, z
2
, z
3
, và z
4

Bước 5: Tính x
1
, x
2
, x
3
, x
4
, với:
x=

z−
b
2

modN

Bản rõ sẽ nhận một trong 4 giá trị x
1
, x
2
, x
3
, x
4
trên.
Vì vậy quá trình giải mã của Rabin thực tế sẽ cho 4 giá trị khác nhau mà bản
rõ là một trong những 4 giá trị đó. Việc chọn giá trị nào trong 4 giá trị tìm được làm
bản rõ tùy thuộc vào những đặc trưng khác của bản rõ mà người giải mã nhận biết.
d) Tính đúng đắn của thuật toán
Điều cần chứng minh là: Nếu y = x(x + b) mod N thì
)
24
(
2
bb
yx 
mod N
Điều cần chứng minh là quá rõ ràng.

22

Chương 2 - MỘT SỐ CẢI TIẾN PHƯƠNG PHÁPMÃ HÓA KHÓA CÔNG
KHAI RABIN
2.1. Một số khái niệm và định nghĩa
2.1.1. Thặng dư bình phương


Định nghĩa:Giả sử m là số nguyên dương. Số a được gọi là một thặng dư bình
phương của m nếu UCL(a, m)=1 và đồng dư x
2
 a(mod m)có nghiệm. Nếu
ngược lại, ta nói a không là thặng dư bình phương của m.

Bổ đề:Giả sử p là số nguyên tố lẻ, a là số nguyên không chia hết cho p. Khi đó
đồng dư sau đây không có nghiệm, hoặc có đúng hai nghiệm không đồng dư
modulo p:x
2
 a(mod p).
Chứng minh
Giả sử có nghiệm x = x
0
. Khi đó, dễ dàngchứng minh rằng x = -x
0
là một
nghiệm không đồng dư với x
0
. Ta sẽ chỉ ra rằng, nghiệm tùy ý khác x = x
1
đồng dư
với x
0
hoặc –x
0
.
Thật vậy, ta có:
2 2
0 1

(mod )x x p

,
Tức là
2 2
0 1 0 1 0 1
( )( ) 0(mod )x x x x x x p
    

Do đó, hoặc p chia hết cho (x
0
+x
1
), hoặc p chia hết cho (x
0
-x
1
) Điều phải
chứng minh.

Định lý: Nếu p là một số nguyên tố lẻ, thì trong các số 1, 2, , p-1 có đúng
1
2
p 

thặng dư bình phương.
Chứng minh
Để tìm tất cả các thặng dư modulo p trong các số 1, 2, , p-1, trước tiên ta
bình phương các số đó và xét thặng dư dương bé nhất modulo p của các kết quả
nhận được. Các thặng dư dương bé nhất này là tất cả các thặng dư bình phương

trong các số từ 1 đến p-1. Giả sử a là một thặng dư như vậy. Vì phương trình đồng
dư x
2
 a(mod p) có đúng hai nghiệm, nên trong số (p-1) bình phương đang xét, phải
có hai bình phương thặng dư a. Số thặng dư bình phương đúng bằng
1
2
p 
.
23

2.1.2. Ký hiệu Legendre

Định nghĩa: Giả sử p là một số nguyên tố lẻ và a là một số nguyên, khi đó ký
hiệu Legendre được định nghĩa như sau:


a
p

=

0,nếup|a
1,nếualàthặngdưbậc2củap
−1,nếuakhônglàthặngdưbậc2củap


Ký hiệu p|a có nghĩa p là ước của a hay a chia hết cho p.

Tiêu chuẩn Euler: Với mọi a nguyên, ta có:

L

a
p

=a


modp
Chứng minh
o Giả sử rằng L




=1.
Khi đó, đồng dư x
2
 a (mod p) có nghiệm x = x
0
.
Theo định lý Fermat bé, ta có:
a


=
(
x



)


=x


≡1(modp)
o Xét trường hợpL




=−1
Khi đó, đồng dư x
2
 a (mod p) vô nghiệm.
Với mỗi i sao cho 1≤i≤p−1, tồn tại duy nhất j, 1≤≤−1, để
ij  a (mod p).
Rõ ràng i
≠ j
, nên ta có thể nhóm các số 1, , p-1 thành
1
2
p 
cặp với tích từng
cặp đồng dư a modulo p. Nhân các cặp này với nhau ta được:
(
p−1
)
=a



(modp)
Theo định lý Wilson, số p là nguyên tố khi vàchỉ khi
(
p−1
)
!=−1
(
modp
)

Nên ta có: −1≡a


modnĐịnh lý được chứng minh.
2.1.3. Ký hiệu Jacobi

Định nghĩa: Giả sử N=p∗q, trong đó p, q là 2 số nguyên tố lẻ, a nguyên, khi
đó ký hiệu Jacobi được định nghĩa thông qua ký hiệu Legendre như sau:
24

J
a
N
=L
a
p
×L
a

q

2.1.4. Phương trình Rabin
Xét phương trình đồng dư bậc hai: x
2
=  mod N
Trong đó:
-  và N đã biết, x là nghiệm cần tìm
Ngoài ra  và N có những tính chất:
- N=p∗q và p, q là hai số nguyên tố dạng 3 mod 4
-  là thặng dư bình phương của N và0≤θ≤N
Phương trình này dùng để giải mã trong sơ đồ Rabin, nên ở đây gọi là phương
trình Rabin.
Phương trình Rabin có 4 nghiệm phân biệt x
1
, x
2
, x
3
, x
4
và khi biết p, q thì các
nghiệm này có thể được xác định như sau:
x

=θ


modp
x


=θ


modq
Khi đó, ta có:
x
1
= root1(x
p
, x
q
) x
2
= root2(x
p
, q - x
q
)
x
3
= root3(p - x
p
, x
q
) x
4
= root4(p - x
p
, q - x

q
)
Kí hiệu root(u,v) là nghiệm của hệ phương trình đồng dư:

x=umodp
x=vmodq


Nghiệm của hệ này có thể được tính theo định lý số dư Trung Quốc (mục 2.1.5).

Bổ đề 1:Ta có
(1) Nếu p|, thì x
1
= x
3
, x
2
= x
4
, x
2
= N – x
1
, J





=J






=0
(2) Nếu q|, thì x
1
= x
2
, x
3
= x
4
, x
3
= N – x
1
, J





=J






=0
(3) Nếu p và q, thì J





=J





=1, và x
4
= N – x
1

Ký hiệu p là  không chia hết cho p.
q là  không chia hết cho q
25

Chứng minh
(1) Nếu p| thì x
p
= 0 và p - x
0
= 0 mod p.
Từ đó suy ra:
x

1
= x
3
, x
2
= x
4
, J





=J





=0
Nhưvậy phương trình x
2
=  mod N có 2 nghiệm x
1
và x
2
nên x
2
= N – x
1

.
Vậy (1) được chứng minh.
(2) Chứng minh tương tự (1)
(3) Do p và q và các giả thiết về , p, q, N suy ra x
p
là thặng dư bậc hai của p
và x
q
là thặng dư bậc hai của q, nên:
L

x

p

=L

x

q

=1
L

p−x

p

=L


q−x

q

=−1
Từ đó suy ra :
J

x

N

=J

x

N

=1
J





=J






=−1
Mặt khác có thể thấy, nếu x là nghiệm của phương trình x
2
=  mod N và
J




=1ℎặ−1, thì N-x cũng là nghiệm của phương trình này và J




=
J




.
Từ đó suy ra, x
4
= N – x
1
và x
3
= N – x
2


Vậy Bổ đề 1 được chứng minh.
Bổ đề 1 trực tiếp suy ra Bổ đề 2 như sau:

Bổ đề 2:Giả sử M là nghiệm cần tìm của phương trình x
2
=  mod N, thì M có
thể được xác định như sau:
(1) Nếu J




= 0 hoặc 1, thì M = x
1
hoặc M = N - x
1

(2) Nếu J




= -1, thì M = x
2
hoặc M = N - x
2

×