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

bài báo cáo môn an toàn bảo mật thông tin

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 (599.18 KB, 29 trang )

PHÂN HIỆU TRƯỜNG ĐẠI HỌC THUỶ LỢI
KHOA CÔNG NGHỆ THÔNG TIN
--------

BÀI BÁO CÁO
MƠN HỌC AN TỒN BẢO MẬT THƠNG TIN
ĐỀ TÀI:
TÌM HIỂU CÁC THUẬT TỐN DES, AES VÀ
RSA
Giảng viên hướng dẫn: ThS. PHẠM
HỒNG XUÂN
Sinh viên thực hiện:
Mi
Lớp:

Trần Đinh Diệu

S22-61TH2

Mã số sinh viên:

1954025425


Tp. Hồ Chí Minh, ngày 23 tháng 10 năm 2022

2|Page


LỜI MỞ ĐẦU
Thương mại điện tử đang và sẽ phát triển rất mạnh trên toàn


thế giới. sự xuất hiện và phát triển của TMDĐT không chỉ giúp cho
việc kinh doanh của các doanh nghiệp thuận lợi hơn mà còn giúp
cho người tiêu dùng những lợi ích về mặt tiết kiệm thời gian, công
sức… vậy để sự tồn tại của TMĐT sẽ lâu dài thì sự xuất hiện của AN
Tồn Bảo Mật Thơng Tin rất quan trọng và cần thiết. Nó nghiên cứu
về những nguy cơ gây mất an toàn dữ liệu và các biện pháp đảm
bào an toàn, tránh khỏi những nguy cơ trong quá trình sử dụng hình
thức kinh doanh thương mại điện tử được tốt hơn thì việc nghiên cứu
để đưa ra cách mã hoá bằng các thuật toán cũng là một trong số
những biện pháp đảm bảo an tồn trong dữ liệu như: thuật tốn
DES, AES, và RSA. Thông qua bài báo cáo này giúp người sử dụng
cơng nghệ thơng tin nói chung và kinh doanh TMĐT nói riêng sẽ có
cách nhìn và biết cách lựa chọn thuật tốn nào phù hợp với từng đặc
tính của nó đúng đắn hơn.

3|Page


LỜI CẢM ƠN
Trên hết, em xin chân thành cảm ơn thầy Th.s Phạm Hồng
Xuân - giảng viên hướng dẫn môn “An tồn bảo mật thơng tin” đã
tận tình giảng dạy và cung cấp những kiến thức quý báu, tạo mọi
điều kiện thuận lợi và góp ý trong suốt q trình học tập để em có
thể hồn thành bài báo cáo này.
Em xin chân thành cảm ơn thầy!
Bài báo cáo của em gồm có:
Chương 1: Tổng quan về mã hố dữ liệu.
Chương 2: Thuật toán DES (Data Encryption Standard).
Chương 3: Thuật toán AES (Advanced Encryption Standard).
Chương 4: Thuật toán RSA.

Chương 5: Tổng kết.
Tài liệu tham khảo

4|Page


MỤC LỤC
Mục lục

CHƯƠNG 1: TỔNG QUAN VỀ MÃ HOÁ DỮ LIỆU
1. Khái niệm

Mã hoá dữ liệu là một phương pháp bảo vệ thông tin,
bằng cách chuyển đổi thông tin từ dạng có thể đọc và hiểu
được thơng thường sang dạng thơng tin khơng thể hiểu theo
các thơng thường chỉ có người có quyền truy cập vào khóa giải
mã hoặc có mật khẩu mới có thể đọc được nó. Việc làm này
giúp ta có thể bảo vệ thơng tin tốt hơn, an toàn trong việc
truyền dữ liệu. Thực chất việc mã hóa dữ liệu sẽ khơng thể nào
ngăn việc dữ liệu có thể bị đánh cắp, nhưng nó sẽ ngăn việc
người khác có thể đọc được nội dung của tập tin đó, vì nó đã bị
biến sang thành một dạng ký tự khác, hay nội dung khác. Dữ
liệu được mã hóa thường gọi là ciphertext, dữ liệu thông
thường, không được mã hóa thì gọi là plaintext.
2. Các phương pháp mã hố
• Mã hóa cổ điển
Đây là phương pháp mã hóa cổ xưa và đơn giản nhất. Ngày
nay phương pháp này không còn được sử dụng nhiều so với
những phướng pháp khác. Bởi nó quá đơn giản. Ý tưởng của
phương pháp này là: bên A mã hóa thơng tin bằng thuật tốn

mã hóa cổ điển, và bên B giải mã thơng tin, dựa vào thuật tốn
của bên A cung cấp, khơng cần dùng đến bất kì key nào. Vì thế
tồn bộ độ an tồn của kiểu mã hóa này phụ thuộc vào bí mật
của thuật tốn. Nếu một người thứ ba biết được thuật tốn thì
xem như thơng tin khơng cịn bảo mật nữa. Việc giữ bí mật
thuật tốn trở nên vơ cùng quan trọng, và khơng phải ai cũng
có thể giữ bí mật đó một cách trọn vẹn.


Mã hóa một chiều (hash)

5|Page


Có những tường hợp chúng ta chỉ cần mã hóa thơng tin chứ
khơng cần giải mã nó. Đó là khi chúng ta cần sử dụng kiểu mã
hóa một chiều này. Ví dụ, khi bạn đăng nhập vào một trang
web, mật khẩu của bạn sẽ được hàm băm (hash function)
“băm nhỏ” , chuyển thành một chuỗi các kí tự như
“KhhdhujidbH”. Thực chất, cơ sở dữ liệu lưu lại các kí tự mã hóa
này chứ khơng lưu lại mật khẩu của bạn. Lỡ hacker có trộm dữ
liệu thì cũng chỉ thấy những kí tự khó hiểu chứ khơng biết
password thật của bạn là gì.

Đặc điểm của hash function đó là trong cùng 1 điều kiện, dữ
liệu đầu vào giống nhau thì nó sẽ cho ra kết quả y hệt nhau.
Nếu chỉ cần thay đổi một kí tự trong chuỗi, từ chữ hoa sang chữ
thường, kết quả sẽ hồn tồn khác. Cũng vì vậy mà người ta
dùng hash function để kiểm tra tính tồn vẹn của dữ liệu.
Hiện nay, hai thuật tốn hash function thường được dùng nhất

là MD5 và SHA. Nếu bạn download file trên mạng thì đơi khi sẽ
thấy dịng chữ MD5 do tác giả cung cấp. Bạn sẽ phải nhập mã
hiện lên theo yêu cầu. Mục đích là để bạn so sánh file đã
download với file gốc xem có bị lỗi gì khơng.


Mã hóa bất đối xứng
Kiểu mã hóa này cịn có tên gọi khác là mã hóa khóa cơng
khai. Nó sử dụng đến hai khóa (key) khác nhau. Một khóa gọi là
khóa cơng khai (public key) và một khóa khác là khóa bí mật
(private key). Dữ liệu được mã hóa bằng public key. Tất cả mọi
người đều có thể có được key này. Tuy nhiên để giải mã được
dữ liệu, người nhận cần phải có private key.
Để thực hiện mã hóa bất đối xứng thì:
6|Page


– Người nhận sẽ tạo ra một gặp khóa (public key và private
key), họ sẽ giữ lại private key và truyền cho bên gửi public key.
Vì public key này là cơng khai nên có thể truyền tự do mà
khơng cần bảo mật.
– Trước khi gửi tin nhắn, người gửi sẽ mã hóa dữ liệu bằng mã
hóa bất đối xứng với những key nhận được từ người nhận
– Người nhận sẽ giải mã dữ liệu nhận được bằng thuật toán
được sử dụng ở bên người gửi, với key giải mã là private key.
Điểm yếu lớn nhất của kiểu mã hóa này là tốc độ mã hóa và
giải mã rất chậm. Nếu dùng kiểu mã hóa bất đối xứng trong
việc truyền dữ liệu thì sẽ rất tốn phí và mất thời gian.
Thuật tốn mã hóa bất đối xứng thường thấy: RSA.



Mã hóa đối xứng
Phương pháp mã hóa này chỉ cần dùng một key giống nhau để
mã hóa và giải mã. Theo một số tài liệu thì mã hóa đối xứng là
giải pháp được sử dụng nhất phổ biến hiện nay.

Quy trình mã hóa được miêu tả như sau:
-Dùng giải thuật ngẫu nhiên mã hóa + key để mã hóa dữ liệu
gửi đi.
-Bằng cách nào đó, key của người gửi sẽ được gửi đến cho
người nhận, có thể là giao trước hoặc sau khi mã hóa file đều
được.
7|Page


-Khi người nhận nhận được dữ kiệu, họ sẽ dùng key này để giải
mã dữ liệu để có được dữ liệu chuẩn.
Tuy nhiên vấn đề bảo mật nằm ở chỗ, làm thế nào đẻ chuyển
key cho người nhận một cách an tồn. Nếu key này bị lộ, bất kì
ai sử dụng giải thuật phía trên đều có thể giải mã được dữ liệu
như vậy thì tính bảo mật sẽ khơng cịn nữa.
Chúng ta sẽ thường thấy hai thuật tốn thường thấy là DES và
AES. Thuật toán DES xuất hiện từ năm 1977 nên không được
sử dụng phổ biến bằng AES. Thuật tốn AES có thể dùng nhiều
kích thước ơ nhớ khác nhau để mã hóa dữ liệu, thường thấy là
128-bit và 256-bit, có một số lên tới 512-bit và 1024-bit. Kích
thước ơ nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải
mã và mã hóa

CHƯƠNG 2: THUẬT TOÁN DES (DATA ENCRYPTION

STANDARD)
1. Khái niệm

DES (viết tắt của Data Encryption Standard, hay Tiêu
chuẩn Mã hoá Dữ liệu) là một phương pháp mật mã hoá được
FIPS (Tiêu chuẩn Xử lý Thơng tin Liên bang Hoa Kỳ) chọn làm
chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử
dụng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật tốn
gây ra nhiều tranh cãi, do nó bao gồm các thành phần thiết kế
mật, độ dài tương đối ngắn, dễ bị tấn công bởi các cuộc tấn
công rất mạnh và do đó. Có 1 số máy có thể được sử dụng để
bẻ khố thuật tốn DES, tính phổ biến của DES đã giảm nhẹ.

2. Lịch sử phát triển của thuật toán DES

DES dựa trên mật mã khối Feistel, được gọi là LUCIFER, được
phát triển vào năm 1971 bởi nhà nghiên cứu mật mã Horst
Feistel của IBM. DES sử dụng 16 vịng của cấu trúc Feistel, sử
dụng một phím khác nhau cho mỗi vịng.
DES trở thành tiêu chuẩn mã hóa liên bang được phê duyệt vào
tháng 11 năm 1976 và sau đó được tái khẳng định là tiêu
chuẩn vào năm 1983, 1988 và 1999.
8|Page


Sự thống trị của DES chấm dứt vào năm 2002, khi Tiêu chuẩn
mã hóa nâng cao (AES) thay thế thuật tốn mã hóa DES làm
tiêu chuẩn được chấp nhận, sau một cuộc cạnh tranh cơng khai
để tìm người thay thế. NIST đã chính thức rút bỏ FIPS 46-3 (tái
khẳng định năm 1999) vào tháng 5 năm 2005, mặc dù Triple

DES (3DES), vẫn được phê duyệt đối với thông tin nhạy cảm
của chính phủ cho đến năm 2030.
3. Mơ tả thuật tốn

DES là thuật tốn mã hố khối, nó xử lý từng khối thơng tin của
bản rõ có độ dài xác định và biến đổi theo những quá trình
phức tạp trở thành khối thơng tin của bản mã có độ dài khơng
đổi.
Q trình DES có một số bước liên quan đến nó, trong đó mỗi
bước được gọi là một vịng. Tùy thuộc vào kích thước của khóa
được sử dụng, số lượng vịng khác nhau. Ví dụ: khóa 128 bit
u cầu 10 vịng, khóa 192 bit u cầu 12 vịng, v.v.
Thuật tốn DES sử dụng khóa có kích thước 56-bit. Sử dụng
khóa này, DES lấy một khối văn bản thuần túy 64 bit làm đầu
vào và tạo ra một khối văn bản mã hóa 64 bit. Tuy nhiên chỉ có
56 bit thực sự được sử dụng, 8 bit còn lại chỉ dùng cho việc
kiểm tra. Vì thế, độ dài thực tế của khoá chỉ là 56 bit.

9|Page


4. Phương thức hoạt động của DES

Các chuyên gia sử dụng DES có năm chế độ hoạt động khác
nhau để lựa chọn.
Sổ mã điện tử (ECB). Mỗi khối 64-bit được mã hóa và giải mã
độc lập
Chuỗi khối mật mã (CBC). Mỗi khối 64 bit phụ thuộc vào khối
trước đó và sử dụng vectơ khởi tạo (IV)
• Phản hồi mật mã (CFB). Bản mã trước đó trở thành đầu vào

cho thuật tốn mã hóa, tạo ra đầu ra giả ngẫu nhiên, đến lượt
nó được XOR với bản rõ, xây dựng đơn vị bản mã tiếp theo
• Phản hồi đầu ra (OFB). Giống như CFB, ngoại trừ đầu vào của
thuật toán mã hóa là đầu ra từ DES trước đó
Bộ đếm (CTR). Mỗi khối bản rõ được XOR với một bộ đếm được
mã hóa. Bộ đếm sau đó được tăng dần cho mỗi khối tiếp theo


10 | P a g e


Tiếp theo, chúng tôi sẽ nâng cao hiểu biết của chúng tơi về
DES là gì, chúng ta hãy xem xét việc triển khai và thử nghiệm
DES.
Từ năm 1980-1990 xuất phát từ những lo ngại về độ an toàn
và tốc độ thấp khi áp dụng bằng phần mềm, giới nghiên cứu đã
đề xuất khá nhiều thuật toán mã hoá khối để thay thế DES.
Ngay bản thân DES cũng có thể sử dụng 1 cách an toàn hơn.
Những người sử dụng DES trước đây có thể dùng Triple DES
(hay TDES). Đây là phương pháp được một trong những người
phát minh ra DES miêu tả và kiểm tra Triple DES sử dụng DES
ba lần cho một văn bản với những khoá khác nhau. Hiện nay
Triple DES được xem an toàn mặc dù tốc độ thực hiện khá
chậm. Một phương pháp khác ít địi hỏi khả năng tính tốn hơn
là DES-X với việc tăng độ dài từ khoá bằng cách thực hiện phép
XOR từ khoá với phần thêm trước và sau khi thực hiện DES.
Một phương pháp nữa là GDES được đề xuất làm tăng tốc độ
mã hố nhưng nó được chứng tỏ là khơng an tồn trước tấn
cơng vi sai (differential cryptanalysis).
Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra một

thuật toán mới, AES, để thay thế cho DES. Tác giả của thuật
toán được biết dưới tên là Rijndael. Những thuật tốn khác có
tên trong danh sách cuối cùng của cuộc thi AES bao gồm: RC6,
Serpent, MARS và Twofish.
5. Ưu điểm và nhược điểm của thuật toán DES

Ưu điểm:
Nếu dữ liệu đang lựa chọn bảo vệ chỉ có tuổi thọ vài giờ thì lựa
chọn DES là hợp lý, có những lý do sau:
1. Nó được đặt ra như 1 tiêu chuẩn của chính phủ Hoa Kỳ.
2. Khi so sánh với phần mềm, nó hoạt động nhanh hơn trên

phần cứng.

3. Thuật toán mã hoá DES tốc độ mã hoá dữ liệu rất nhanh.
4. Triple DES, sử sụng khoá 168 bit rất khó bẻ khố.

Nhược điểm:

11 | P a g e


Hiện nay DES được xem là khơng đủ an tồn cho nhiều ứng
dụng. Nguyên nhân chủ yếu là do :
1. DES có kích cỡ của khơng gian khố là 256 là q nhỏ,

khơng an tồn, khố DES đã từng bị phá trong vòng chưa
đầy 24 giờ, cho nên những máy có mục đích đặc biệt có thể
sẽ bẻ gãy và dị ra khố rất nhanh.


2. Có 1 mối đe doạ từ các cuộc tấn công Brute force (Brute

Force là một loại tấn cơng mạng, trong đó bạn có một phần
mềm, xoay vòng các ký tự khác nhau, kết hợp để tạo ra một
mật khẩu đúng). Gần đây DES đã được thay thế bằng AES
(Advanced Encryption Standard, hay Tiêu chuẩn Mã hoá
Tiên tiến).

3. NSA (National Standards Association) coi DES là một trong

những sai lầm lớn nhất. Nếu họ biết trước rằng chi tiết của
thuật tốn sẽ được cơng bố để mọi người có thể viết chương
trình phần mềm, họ sẽ khơng bao giờ đồng ý.

6. Các ứng dụng của thuật toán DES

Ứng dụng cho các văn bản trong giao dịch ngân hàng sử dụng
các tiêu chuẩn được hiệp hội các ngân hàng Mỹ phát triển. DES
được sử dụng để mã hoá các số nhận dạng cá nhân (Pins) và
các văn bản về tài khoản được máy thu ngân tự động.
Nó được triển khai khi cần mã hố khơng q mạnh.
Nó được sử dụng để phát triển một dạng DES mới, được gọi là
Triple DES (sử dụng khóa 168 bit được hình thành bằng cách sử
dụng ba khóa).

12 | P a g e


CHƯƠNG 3: THUÂT TOÁN AES (AVANCED
ENCRYPTION STANDARD)

1. Khái niệm:

AES (viết tắt của Advanced Encryption Standard, hay Tiêu
chuẩn mã hoá tiên tiến) là một thuật tốn mã hố khối được
chính phủ Hoa Kỳ áp dụng làm tiêu chuẩn mã hoá. Giống như
tiêu chuẩn tiền nhiệm DES, AES được kỳ vọng áp dụng trên
phạm vi thế giới và đã được nghiên cứu rất kỹ lưỡng. AES được
chấp nhận làm tiêu chuẩn liên bang bởi Viện tiêu chuẩn và
công nghệ quốc gia Hoa Kỳ (NIST) sau một q trình tiêu
chuẩn hố kéo dài 5 năm.
2. Lịch sử phát triển:
AES được phát triển từ cuối những năm 90s để thay thế chuẩn
mã hóa trước đó là Data Encryption Standard (DES) do IBM tạo
ra đầu những năm 70s. Nó được chính phủ Mỹ dùng trong năm
1977 nhưng sau đó có nhiều lỗ hổng dễ bị tấn cơng (brute
force, phân tích mật mã khác biệt/tuyến tính) do dựa trên thuật
tốn 56 bit, nên khơng cịn hữu ích nữa khi vi xử lý máy tính
ngày càng mạnh hơn.
Vào năm 1998, DES trở thành 3DES hay còn gọi là Triple DES,
dùng thuật tốn DES để truyền thơng điệp 3 lần liên tiếp với 3
khóa mã hóa khác nhau. 3DES khiến dữ liệu an tồn hơn trước
kiểu tấn cơng brute force thời đó.
15 thuật tốn được đề xuất thay thế DES, bắt đầu quy trình 5
năm của chính phủ Mỹ. AES được hai nhà mật mã học là
Vincent Rijmen và Joan Daemen đề xuất, sau được gọi là “đơn
Rijindael”.
AES là chuẩn mở vì khi đó chuẩn thực sự cũng chưa được xác
định. Trong q trình thiết kế, nó cũng nhận bình luận, góp ý.
13 | P a g e



Nó được Viện tiêu chuẩn và kỹ thuật quốc gia Hoa Kỳ phát triển
với mục tiêu dễ dùng cho cả phần cứng và phần mềm. Một số
thay đổi về khóa và khối được thực hiện để tăng tính an tồn.
NSA cũng tham gia xem xét 15 bản đề xuất. Tới tháng 8/1999
chỉ cịn 5 thuật tốn (Rijndael, Serpent, RC6, Twofish và MARS).
Các “ứng viên” được phân tích thêm về độ bảo mật, tính dễ sử
dụng, bản quyền, tốc độ, độ chính xác khi mã hóa và giải mã.
Người chiến thắng sau cùng là Rijndael, sau đó được đưa lên
cho chính phủ Mỹ vào năm 2002 và cả NSA cùng các tổ chức
khác. Đến giờ, AES vẫn được dùng cho các tài liệu tuyệt mật,
được cho là FIPS (Federal Information Processing Standard tiêu chuẩn xử lý thông tin liên bang). Sau đó nó được dùng
trong khối tư nhân, là chuẩn mã hóa phổ biến nhất với mã hóa
khóa đối xứng.
3. Mơ tả thuật toán:

Để hiểu cách hoạt động của AES, trước tiên bạn cần tìm hiểu
cách nó truyền thơng tin giữa nhiều bước. Vì một khối duy nhất
là 16 byte, ma trận 4x4 giữ dữ liệu trong một khối duy nhất,
với mỗi ô chứa một byte thông tin.

Ma trận hiển thị trong hình trên được gọi là một mảng trạng
thái. Tương tự, khóa đang được sử dụng ban đầu được mở rộng
14 | P a g e


thành (n + 1) khóa, với n là số vịng phải tn theo trong q
trình mã hóa. Vì vậy, đối với khóa 128-bit, số vịng là 16, khơng
có. trong số các khóa sẽ được tạo là 10 + 1, tổng số là 11
khóa.

Thuật tốn AES lấy văn bản thuần túy trong các khối 128 bit
và chuyển đổi chúng thành văn bản mã bằng cách sử dụng các
khóa 128, 192 và 256 bit. Vì thuật tốn AES được coi là an tồn
nên nó nằm trong tiêu chuẩn trên tồn thế giới.

4. Phương thức hoạt động

Thuật toán AES sử dụng hoán vị thay thế, hoặc mạng SP, với
nhiều vòng để tạo ra bản mã. Số lượng vịng tùy thuộc vào kích
thước khóa được sử dụng. Kích thước phím 128 bit cho biết 10
vịng, kích thước phím 192 bit cho 12 vịng và kích thước phím
256 bit có 14 vịng. Mỗi vịng này u cầu một khóa trịn,
nhưng vì chỉ có một khóa được nhập vào thuật tốn, khóa này
cần được mở rộng để lấy các khóa cho mỗi vịng, bao gồm cả
vịng 0.

15 | P a g e


Các bước trong mỗi vịng
Mỗi vịng trong thuật tốn bao gồm bốn bước.


Thay thế các byte
Trong bước đầu tiên, các byte của văn bản khối được thay thế
dựa trên các quy tắc được quy định bởi các hộp S xác định
trước (viết tắt của các hộp thay thế).

16 | P a g e





Chuyển các hàng
Tiếp theo là bước hoán vị. Trong bước này, tất cả các hàng
ngoại trừ hàng đầu tiên được dịch chuyển một, như được hiển
thị bên dưới.

17 | P a g e




Trộn các cột
Trong bước thứ ba, mật mã Hill được sử dụng để trộn thông
điệp nhiều hơn bằng cách trộn các cột của khối.



Thêm phím trịn
Trong bước cuối cùng, thơng báo được XOR bằng phím trịn
tương ứng.

18 | P a g e


Khi được thực hiện nhiều lần, các bước này đảm bảo rằng
bản mã cuối cùng được bảo mật.
5. Ưu điểm và nhược điểm của AES


Ưu điểm:
Thiết kế và độ dài khoá của thuật toán AES (128, 192 và 256
bit) là đủ an tồn để bảo vệ các thơng tin được xếp váo loại TỐI
MẬT (secret). Các phiên bản thực hiện AES nhằm mục đích bảo
vệ hệ thồng an ninh hay thông tin quốc gia phải được NSA
kiểm chứng.
Vào tháng 6 năm 2003, chính phủ Hoa kỳ tun bố AES có thể
được sử dụng cho thông tin mật.
Vào năm 2006, dạng tấn công lên AES duy nhất thành công là
tấn công kênh bên (side channel attack). Tấn công kênh bên là

19 | P a g e


tấn cơng trực tiếp vào thuật tốn mã hố, tấn cơng lên các hệ
thống thực hiện thuật tốn có cơ sở làm lộ dữ liệu.
Nhược điểm:
Về an ninh của AES thì các nhà khoa học đánh giá là chưa cao.
Họ cho rằng ranh giới giữa số chu trình của thuật tốn và số
chu trình bị phá vỡ q nhỏ. Nếu các kỹ thuật tấn cơng được
cải thiện thì AES có thể bị phá vỡ. Ở đây, phá vỡ có nghĩa là chỉ
bất cứ phương pháp tấn công nào nhanh hơn tấn cơng kiểu
duyệt tồn bộ. Vì thế một tấn cơng cần thực hiện 2120 cũng
được coi là thành công mặc dù tấn công này chưa thể thực
hiện trong thực tế.

6. Ứng dụng của AES trong thực tế

Các ứng dụng của thuật tốn Mã hóa AES như sau:
Bảo mật khơng dây: Mạng khơng dây được bảo mật bằng Tiêu

chuẩn mã hóa nâng cao để xác thực bộ định tuyến và máy
khách. Mạng WiFi có phần mềm vi chương trình và hệ thống
bảo mật hồn chỉnh dựa trên thuật tốn này và hiện đang được
sử dụng hàng ngày.
Duyệt web được mã hóa: AES đóng một vai trị rất lớn trong
việc đảm bảo xác thực máy chủ trang web từ cả máy khách và
máy chủ. Với việc sử dụng cả mã hóa đối xứng và khơng đối
xứng , thuật tốn này giúp các giao thức mã hóa SSL / TLS ln
duyệt với sự bảo mật và riêng tư tối đa.
Mã hóa tệp chung: Ngồi nhu cầu thiết yếu của cơng ty, AES
cịn được sử dụng để chuyển tệp giữa các liên kết ở định dạng
được mã hóa. Thơng tin được mã hóa có thể mở rộng đến tin
nhắn trị chuyện, hình ảnh gia đình, tài liệu pháp lý, v.v.
20 | P a g e


Bảo mật bộ xử lý: Nhiều nhà sản xuất bộ xử lý cho phép mã
hóa cấp phần cứng bằng cách sử dụng mã hóa AES để tăng
cường bảo mật và ngăn chặn các lỗi tan chảy, trong số các rủi
ro cấu hình thấp khác.
Bây giờ bạn đã tìm hiểu về các ứng dụng của mã hóa AES, hãy
xem các nâng cấp của nó so với người tiền nhiệm của nó, thuật
tốn mã hóa DES.

CHƯƠNG 4: THUẬT TỐN RSA (Giải thuật mã hóa
khóa bất đối xứng)
1. Khái niệm

Thuật tốn RSA (Rivest-Shamir-Adleman) là cơ sở của hệ thống
mật mã - một bộ thuật tốn mật mã được sử dụng cho các mục

đích hoặc dịch vụ bảo mật cụ thể - cho phép mã hóa khóa cơng
khai và được sử dụng rộng rãi để bảo mật dữ liệu nhạy cảm,
đặc biệt khi nó đang được gửi qua một mạng khơng an tồn
chẳng hạn như internet.
2. Lịch sử phát triển

Giải thuật mã hóa RSA được 3 nhà khoa học Ronald Rivest, Adi
Shamir và Leonard Adleman thuộc Viện Công nghệ
Massachusetts phát minh năm 1977 và tên gọi của nó cũng
được lấy theo 3 chữ cái đầu của 3 nhà khoa học. Mặc dù việc
tạo ra thuật tốn khóa cơng khai năm 1973 của nhà tốn học
người Anh Clifford Cocks đã được GCHQ của Vương quốc Anh
phân loại cho đến năm 1997.
RSA sử dụng một cặp khóa:
♣ Khóa cơng khai (Public key) dùng để mã hóa.
♣ Khóa riêng (Private key) dùng để giải mã.
♣ Chỉ khóa riêng cần giữ bí mật. Khóa cơng khai có thể cơng bố
rộng rãi.
3. Mơ tả thuật tốn

Alice tạo các khóa RSA của mình bằng cách chọn hai số
nguyên tố: p = 11 và q = 13. Môđun là n = p × q = 143. Mẫu
là n ϕ (n) = (p − 1) x (q − 1) = 120. Cô ấy chọn 7 cho khóa
cơng khai RSA của mình e và tính tốn khóa riêng RSA của
21 | P a g e


mình bằng cách sử dụng thuật tốn Euclid mở rộng, mang lại
cho cô ấy 103.
Bob muốn gửi cho Alice một tin nhắn được mã hóa, M, vì vậy

anh ta lấy được khóa cơng khai RSA của cơ ấy (n, e), trong ví
dụ này, là (143, 7). Thơng điệp văn bản rõ của anh ta chỉ là số
9 và được mã hóa thành bản mã , C, như sau:
M e mod n = 9 7 mod 143 = 48 = C
Khi Alice nhận được tin nhắn của Bob, cô ấy sẽ giải mã nó bằng
cách sử dụng khóa riêng RSA (d, n) của mình như sau:
C d mod n = 48 103 mod 143 = 9 = M
Để sử dụng khóa RSA để ký kỹ thuật số một tin nhắn , Alice sẽ
cần tạo một mã băm - một bản tóm tắt thông báo của tin nhắn
của cô ấy cho Bob - mã hóa giá trị băm bằng khóa riêng RSA
của cơ ấy và thêm khóa vào tin nhắn. Sau đó, Bob có thể xác
minh rằng tin nhắn đã được gửi bởi Alice và không bị thay đổi
bằng cách giải mã giá trị băm bằng khóa cơng khai của cơ
ấy. Nếu giá trị này khớp với hàm băm của thông điệp gốc, thì
chỉ có Alice mới có thể gửi nó - xác thực và khơng từ chối - và
thơng điệp chính xác như cơ ấy đã viết - tính tồn vẹn.
Tất nhiên, Alice có thể mã hóa tin nhắn của mình bằng khóa
cơng khai RSA của Bob - tính bảo mật - trước khi gửi cho
Bob. Chứng chỉ số chứa thông tin xác định chủ sở hữu chứng
chỉ và cũng chứa khóa cơng khai của chủ sở hữu. Chứng chỉ
được ký bởi tổ chức phát hành chứng chỉ và chúng có thể đơn
giản hóa q trình lấy khóa cơng khai và xác minh chủ sở hữu.
4. Phương thức hoạt động

Để hoàn thiện mọi yếu tố để cải thiện chức năng bảo mật của
RSA cần trải qua các bước sau:


Sinh khóa
Sinh khóa là quá trình tìm kiếm một bộ bao gồm 3 số tự nhiên

là d, n, e thỏa mãn công thức dưới đây.Med trùng mmod nTrong
đó d là giá trị được bảo mật tuyệt đối để khi biết các giá trị
22 | P a g e


khác là n, e, m thì cũng khơng thể tìm ra được giá trị của d. Với
công thức này, RSA sẽ sinh khóa theo quy trình:
Chọn ra hai số ngun tố là p và q.
Tính n = pq, sau đó giá trị của n sẽ có vai trị ở cả hai loại khóa
là khóa bí mật và khóa cơng khai.
Một vài số giả ngun tố sẽ được tính tốn và đưa và giữ bó
mật.
Chọn một số e ở giữa số 1 và số giải nguyên tố n sao cho ước
chung lớn nhất của hai số này bằng 1 (giá trị của e và số giả
nguyên tố n có nguyên tố trùng nhau).
Tiếp tục tìm giá trị của d sao cho d trùng với 1/e hay de =1. Số
tự nhiên d lúc này sẽ là nghịch đảo của số e theo cơng thức
modulo mod λ(n).
Khi đó khóa cơng khai sẽ là bộ số (n, e) cịn khóa bí mật là bộ
số (n, d). Nhiệm vụ chính của bạn chính là giữ cẩn thận khóa bí
mật và số ngun tố p, q để từ đó phục vụ việc tính tốn và
mở khóa.Trên thực tế, khi đưa vào thực hành, người ta vẫn lựa
chọn giá tri của e nhỏ để việc giải mã trở nên nhanh chóng,
thơng thường e = 65537.


Mã hóa và giải mã
Cũng chính vì tính bảo mật của RSA mà chỉ người nhận mới có
thể mở khóa dữ liệu. Nếu bạn đang có dữ liệu M, hãy chuyển
nó thành số tự nhiên m nằm trong khoảng (0, n) và hãy đảm

bảo rằng giá trị m và n có nguyên tố cùng nhau. Để tìm được
số tự nhiên này, hãy áp dụng kỹ thuật padding sau đó tiến
hành mã hóa m thành c với cơng thức:
c ≡ me mod n
trong đó c sẽ là dữ liệu được chuyển đến người nhận, người
nhận lúc này sẽ giải mã c để lấy được giá trị của m thông qua
công thức:
cd ≡ mde ≡ m mod n
Sau khi lấy được giá trị của m, người nhận chỉ cần đảo ngược
padding để lấy thông tin gốc.

23 | P a g e




Một số u cầu với q trình sinh khóa RSA.

Các số nguyên tố p và q phải được chọn sao cho việc phân tích
n (n = pq) là khơng khả thi về mặt tính tốn.
- p và q nên có cùng độ lớn (tính bằng bit) và phải là các số đủ
lớn.
- Hiệu số p – q không nên quá nhỏ.
- Khơng nên sử dụng số mũ mã hóa (e) nhỏ. Khi sử dụng e nhỏ
có thể tăng tốc độ mã hóa, tuy nhiên đồng nghĩa với nó là chi
phí cho việc phân tích vét cạn là khơng lớn => Kẻ tấn cơng có
thể nghe trộm và lấy được bản mã.
- Không nên sử dụng số mũ giải mã (d) nhỏ. Khi sử dụng d nhỏ
có thể tăng tốc độ giải mã, tuy nhiên nếu d nhỏ và gcd(p-1, q1) (gcd: ước số chung lớn nhất) cũng nhỏ thì d có thể tính được
tương đối dễ dàng từ khóa cơng khai (n, e).

5. Nhược điểm của thuật toán RSA
-

Số n nhỏ
Nếu số n nhỏ ( chiều dài n < 256 bit), số n có thể bị tách ra
thành các thừa số ngun tố dễ dàng bởi các cơng cụ có sẵn
như factordb.
Chiều dài của số n được khuyến cáo là 1024 bit.
Nhưng đã có những trường hợp số n lớn, nhưng phân tách của
n thành thừa số nguyên tố đã có sẵn trong cơ sở dữ liệu của
các trang như factordb hoặc alpertron.
Đây là 1 cách tìm p và q rất dễ nên thường được thử đầu tiên.
Số e nhỏ, số m nhỏ
1 nhược điểm lớn của mã hoá RSA đó là tốc độ mã hố chậm
hơn nhiều so với mã hoá DES, do vậy trong một vài trường hợp
để tăng tốc độ, người mã hoá sẽ mã hoá tài liệu bằng 1 mã hoá
khác nhưng khoá sẽ được mã hoá bằng RSA.
Đồng thời để tối ưu hoá thời gian mã hoá, số e cũng được chọn
theo dạng e = 2n+1, khi đó e nhỏ nhất là e = 3.
Nếu ta chọn số e nhỏ và tin nhắn M (m nhỏ) -> ciphertext: c =
m3 (mod n). Vì m nhỏ nên m3 < n khi đó phép tồn module
khơng có tác dụng, Vì vậy để tìm người lại m từ c ta cso m =
c1/3
Tấn công lặp liên tục

24 | P a g e


Ban đầu ta có 2 số p, q lần lượt là 3, 5 => n = p*q = 15 =>
chọn m = 7.

Tính φ(n) = (p-1)*(q-1) = 8 => chọn e = 3.
Tính c = me mod n = 13
c1 = ce mod n = 7
c2 = c1e mod n = 13
Do c2 = c => m = c1 = 7
Hiệu p – q nhỏ - Fermat Attack
p, q được chọn có cùng độ dài bit để tạo được 1 mã RSA mạnh,
nhưng điều này có thể khiến q,p quá gần nhau khiến cho kẻ
tấn công dễ dàng phân tách n thành thừa số nguyên tố. Điều
kiện ( p – q ) < n¼
Số e trùng nhau, số e nhỏ - Hastad Broadcast Attack
Trong mạng LAN, đôi khi số e được đặt giống nhau đối với các
máy tình cùng mức độ. Nghĩa là e1 = e2 = ... = e = 3
Kịch bản tấn công xảy ra nếu máy chủ gửi cùng 1 tin nhắn
broadcast m (đã được mã hóa thành c1, c2, ... cho nhiều máy
tính trong mạng, và ta bắt được ít nhất e ciphertext c1, c2, ...,
ce. Lúc này, ta sẽ có thể khơi phục lại plaintext m khơng mấy
khó khăn.
Giả sử e = 3, đặt M = m3. Nhiệm vụ của ta là giải hệ phương
trình đồng dư:
Sau khi tính được M, ta sẽ tìm được m ( bằng căn bậc 3 của M)
Số n trung nhau - Common modulus
Giống với ví dụ ở phần trước nhưng thay vì e trùng nhau, lần
này n trùng nhau, nghĩa là n1 = n2 = ... = n và số e được chọn
ngẫu nhiên. Như vậy mỗi thành viên trong mạng lưới sẽ được
cấp một bộ tham số (n,ei,di ) riêng.
Vì ed ≡ 1 (mod φ(n)) nên tồn tại số k sao cho ed - kφ(n) = 1.
Do đó: k = (ed-1)/φ(n) > (ed-1)/n
Vậy ta sẽ brute-force số k từ (ed-1)/n trở lên, tính ngược lại
φ(n) = (ed-1)/k, cho đến khi thu được kết quả φ(n) là số

nguyên. Có φ(n)ta dễ dàng tính được Private Key của victim:
dvictim = evictim-1 mod φ(n)
25 | P a g e


×