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 )

ĐẠ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

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Ử
Chun ngành: Bảo đảm tố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

2


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

3


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

4


2.

Hướng phát triển .............................................................................................. 74

TÀI LIỆU THAM KHẢO................................................................................................ 75

5


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

Bảng 2.1: Độ phức tạp tính tốn của các thuật tố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 tốn CPT trường hợp thay đổi 1 bit ..................... 43
Hình 3.2. Minh hoạ q 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 tốn CTL.............................................................. 48
Hình 3.5. Mơ hình q trình nhúng thuỷ vân ......................................................... 58
Hình 3.6. Mơ hình q 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 tồn vẹn của ảnh ................................................. 64
Hình 4.4. Mơ hình khơi phục tệp dữ liệu ............................................................... 64

6


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 ngồ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, ngun 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 thốt, giúp người sử dụng đảm bảoan tồ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 Tố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 hồ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
hồn thành luận văn này.

7


Trong q 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 hồn thiện hơn.
Em xin chân thành cảm ơn!

8


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 tồn cầu do đó hệ thống thư
điện tử hồn tồ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

9


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 tồ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 tồ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à qn 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 tồ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 tồn. Do đó nảy sinh u cầu về an tồ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

10


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 tố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 ln 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 tố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 tốn mật mã học chẳng hạn các thuật tố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 tồ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 để

11



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 q
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 đó Zn = {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 tốn tức là bản rõ, có hai loại thuật
tốn mã hóa sau:



Các thuật tố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 tố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
Q 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

12


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ìln
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 = Kl...Km với dịng khóa đó xác định với mọi bản rõ X = X1...XmP, bản mã
tương ứng là:
e (X) = e (X . . . X ) = e (X ). . . e

(X )

Giải mã Y = YK(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, ngồ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
eK(X) = (X+K) mod 2, dK(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ả

13


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 eK để lập mật mã cho thông báo gửi đi.
Người nhận dùng dK để 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ã eK¢, K² dành cho việc giải
mã dK², các hàm lập mã và giải mã thỏa mãn hệ thức dK²(eK¢(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

14



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 tốn khó
“phân tích số ngun thành thừa số ngun 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
tồ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 tố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 tố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 tốn xếp ba lơ; hệ mật mã nổi tiếng ElGamal dựa trên
độ khó của bài tố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 tố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 = Zn
- 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 tốn mã hóa)
y = E(K¢, x) = x (modN),
- D: K² x C  P (thuật toán giải mã)


15

x∈P


x = D(K², x) = y (modN),

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 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 modN
A sẽ gửi C cho B.
 Giải



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 modN
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 = 1mod∅(N) nên d ∗ e = 1 + t ∗ ∅(n)
Mặt khác: D K ² , E(K ¢ , x) = x modNnên:
D K ² , E(K ¢ , x) = x

∗∅( )

modN


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:

16

(1.2)


x ∅( ) = 1(modN)
Từ đó lần lượt suy ra:
x

∗∅( )

∗∅( )

x

= 1(modN)

= 1(modN)

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(modp)(1.5)

(vì cả hai vế đều chia hết cho p)
Từ(1.4), lần lượt suy ra:
x∗q
∗(

x

x

)∗(

∗∅( )


)

= 1(modN), vìx ∈ Z ∗

= 1(modq)

= 1(modq)
x

∗∅( )

= x(modq)

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
hết cho

=

∗ , tức là:
x

∗∅( )


= x(modp)

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

17

∗∅( )

− x) cũng chia


S = {P, C, K, E, D }
Trong đó:
- P, C = ZN; N = p*q (p và q là 2 số ngun 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 tố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) = ( y 

b2 b
 ) mod N

4 2

b) Quá trình tạo khóa cho hệ mã hóa Rabin
Mỗi bên tạo 1 khố cơng khai và 1 khố 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ã hố
Giả sử A dùng khóa cơng khai N mà B đã gửi cho A, mã hố 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



D : K" x C P
x = D (K", y) =

y +



18

modN




Đặt: c = y +
y = x(x + b)modN

c = x(x + b) +

modN = (x + ) modN

(x + ) = cmodN


Đặt z = x +


modN

Khi đó : z = x +

modN

mà (x + ) = cmodN
nên : z = cmodN


Để 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 = cmodN
o Nếu z = 0x = −

modN

o Nếu 1 < z z = cmodN

z = cmodp
z = cmodq

Theo định lý Fermat: nếu p là số nguyên tố thì c

= 1modp

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


= 1modp

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

= 1modp

Tương tự q là số nguyên tố và c là thặng dư bậc 2 mod q, nên :
c

= 1modq

Do đó :
c

=c

= c. c

= c. (1modp) = cmodp

c

=c

= c. c

= c. (1modq) = cmodq

Theo giả thiết p  3 mod 4; q  3 mod 4 nên

Nên ta có:

19



là các số nguyên tố.


Nếu đặt: u = c

c

=c

= cmodp

c

=c

= cmodq

và v = c

thì:
u = cmodp

Hoặc c = u modp
v = cmodq

Hoặc c = v modq
Do vậy, hệ phương trình
z = cmodp
z = u modp

z = cmodq
z = v modq
Như vậy, để giải phương trình z = cmodN thì cần giải 4 hệ phương trình
đồng dư tương ứng sau đây:
(I)

z ≡ umodp
z ≡ vmodq
z ≡ umodp
z ≡ −vmodq

(II)

(III)

z ≡ −umodp
z ≡ vmodq

(IV)

z ≡ −umodp
z ≡ −vmodq

Giải 4 hệ phương trình đồng dư trên, ta sẽ thu được 4 nghiệm z1, z2, z3, và z4.
Thay 4 nghiệm này vào công thức:

x= z−

b
modN
2

ta sẽ nhận được 4 giá trị x1, x2, x3, x4 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

modp

Bước 3: Tính v = c

modq

20


Bước 4: Tìm nghiệm của hệ phương trình đồng dư
z ≡ ±umodp
z ≡ ±vmodq
thu được 4 nghiệm z1, z2, z3, và z4
Bước 5: Tính x1, x2, x3, x4, với:

x= z−

b
modN
2

Bản rõ sẽ nhận một trong 4 giá trị x1, x2, x3, x4 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ì
x( y

b2 b
 ) mod N
4 2

Điều cần chứng minh là quá rõ ràng.

21


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ư x2 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:x2 a(mod p).
Chứng minh
Giả sử có nghiệm x = x0. Khi đó, dễ dàngchứng minh rằng x = -x0là một

nghiệm không đồng dư với x0. Ta sẽ chỉ ra rằng, nghiệm tùy ý khác x = x1 đồng dư
với x0 hoặc –x0.
Thật vậy, ta có: x02  x12 (mod p) ,
Tức là x02  x12  ( x0  x1 )( x0  x1 )  0(mod p)
Do đó, hoặc p chia hết cho (x0+x1), hoặc p chia hết cho (x0-x1) Đ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

p 1
2

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ư x2 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

22

p 1
.
2


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ếup|a
1,nếualàthặngdưbậc2củap
−1, nếuakhơnglàthặngdưbậc2củap

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ó:
a
L
= a modp

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

= 1.

Khi đó, đồng dư x2  a (mod p) có nghiệm x = x0.
Theo định lý Fermat bé, ta có:
a

= (x )

=x

≡ 1(modp)

= −1

o Xét trường hợpL

Khi đó, đồng dư x2 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

p 1
cặp với tích từng
2

cặp đồng dư a modulo p. Nhân các cặp này với nhau ta được:

(p − 1) = a

(modp)

Theo định lý Wilson, số p là nguyên tố khi vàchỉ khi
(p − 1)! = −1(modp)
Nên ta có: −1 ≡ a

modnĐị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 ngun, khi
đó ký hiệu Jacobi được định nghĩa thơng qua ký hiệu Legendre như sau:

23


J

a
a
a
=L
×L
N
p
q


2.1.4. Phương trình Rabin
Xét phương trình đồng dư bậc hai: x2 =  mod N
Trong đó:
-  và N đã biết, x là nghiệm cần tìm
Ngồ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 x1, x2, x3, x4 và khi biết p, q thì các
nghiệm này có thể được xác định như sau:
x =θ

modp

x =θ

modq

Khi đó, ta có:
x1 = root1(xp, xq)

x2 = root2(xp, q - xq)

x3 = root3(p - xp, xq)

x4 = root4(p - xp, q - xq)

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

x = vmodq
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ì x1 = x3, x2 = x4, x2 = N – x1, J

=J

=0

(2) Nếu q|, thì x1 = x2, x3 = x4, x3 = N – x1, J

=J

=0

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

=J

= 1, và x4 = N – x1

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

24


Chứng minh

(1) Nếu p| thì xp = 0 và p - x0 = 0 mod p.
Từ đó suy ra:
x1 = x3, x2 = x4, J

=J

=0

Nhưvậy phương trình x2 =  mod N có 2 nghiệm x1 và x2 nên x2 = N – x1.
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 xp là thặng dư bậc hai của p
và xq là thặng dư bậc hai của q, nên:
x
x
L
=L
=1
p
q
p−x
q−x
L
=L
= −1
p
q
Từ đó suy ra :
J
J


x
x
=J
=1
N
N
=J

= −1

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

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

=

.
Từ đó suy ra, x4 = N – x1 và x3 = N – x2
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 x2 =  mod N, thì M có
thể được xác định như sau:
(1) Nếu J


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

(2) Nếu J

= -1, thì M = x2 hoặc M = N - x2

25


×