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 TOÀN BẢO MẬT THÔNG TIN ĐỀ TÀI TÌM HIỂU CÁC THUẬT TOÁN DES, AES VÀ RSA Giảng viên hướng dẫn ThS PHẠM HỒNG XUÂN Sinh viê.
Trang 1PHÂN HIỆU TRƯỜNG ĐẠI HỌC THUỶ LỢI
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2Tp Hồ Chí Minh, ngày 23 tháng 10 năm 2022
Trang 3LỜI MỞ ĐẦU
Thương mại điện tử đang và sẽ phát triển rất mạnh trên toànthế giới sự xuất hiện và phát triển của TMDĐT không chỉ giúp choviệc kinh doanh của các doanh nghiệp thuận lợi hơn mà còn giúpcho người tiêu dùng những lợi ích về mặt tiết kiệm thời gian, côngsứ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 ANToà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 đảmbào an toàn, tránh khỏi những nguy cơ trong quá trình sử dụng hìnhthứ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 toàn trong dữ liệu như: thuật toánDES, AES, và RSA Thông qua bài báo cáo này giúp người sử dụngcô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 toán nào phù hợp với từng đặctính của nó đúng đắn hơn
Trang 4LỜI CẢM ƠN
Trên hết, em xin chân thành cảm ơn thầy Th.s Phạm HồngXuân - giảng viên hướng dẫn môn “An toà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 quá trình học tập để em cóthể hoà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ã hoá 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
Trang 5MỤC LỤC Mục lục
LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
CHƯƠNG 1: TỔNG QUAN VỀ MÃ HOÁ DỮ LIỆU 5
1 Khái niệm 5
2 Các phương pháp mã hoá 5
CHƯƠNG 2: THUẬT TOÁN DES (DATA ENCRYPTION STANDARD) 8
1 Khái niệm 8
2 Lịch sử phát triển của thuật toán DES 8
3 Mô tả thuật toán 8
4 Phương thức hoạt động của DES 9
5 Ưu điểm và nhược điểm của thuật toán DES 10
6 Các ứng dụng của thuật toán DES 11
CHƯƠNG 3: THUÂT TOÁN AES (AVANCED ENCRYPTION STANDARD) 12
1 Khái niệm: 12
2 Lịch sử phát triển: 12
3 Mô tả thuật toán: 12
4 Phương thức hoạt động 14
5 Ưu điểm và nhược điểm của AES 17
6 Ứng dụng của AES trong thực tế 18
CHƯƠNG 4: THUẬT TOÁN RSA (Giải thuật mã hóa khóa bất đối xứng) 19
1 Khái niệm 19
2 Lịch sử phát triển 19
3 Mô tả thuật toán 19
4 Phương thức hoạt động 20
5 Ứng dụng của RSA trong thực tế 23
RSA trong bảo mật dữ liệu 23
RSA trong công nghệ thông tin 23
CHƯƠNG 5: TỔNG KẾT 25
TÀI LIỆU THAM KHẢO 26
Trang 6CHƯƠ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 theocá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àygiúp ta có thể bảo vệ thông tin tốt hơn, an toàn trong việctruyền dữ liệu Thực chất việc mã hóa dữ liệu sẽ không thể nàongăn việc dữ liệu có thể bị đánh cắp, nhưng nó sẽ ngăn việcngườ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ôngthường, không được mã hóa thì gọi là plaintext
2 Các phương pháp mã hoá
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àynay phương pháp này không còn được sử dụng nhiều so vớinhững phướng pháp khác Bởi nó quá đơn giản Ý tưởng củaphương pháp này là: bên A mã hóa thông tin bằng thuật toán
mã hóa cổ điển, và bên B giải mã thông tin, dựa vào thuật toáncủa bên A cung cấp, không cần dùng đến bất kì key nào Vì thếtoàn bộ độ an toàn của kiểu mã hóa này phụ thuộc vào bí mậtcủa thuật toán Nếu một người thứ ba biết được thuật toán thìxem như thông tin không còn bảo mật nữa Việc giữ bí mậtthuật toá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)
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 trangweb, 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ôngbiết password thật của bạn là gì
Trang 7Đặ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 sangchữ thường, kết quả sẽ hoàn toàn khác Cũng vì vậy mà người
ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu.Hiện nay, hai thuật toá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ôngkhai 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ọingườ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ì:
– Người nhận sẽ tạo ra một gặp khóa (public key và privatekey), 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
Trang 8Đ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 trongviệc truyền dữ liệu thì sẽ rất tốn phí và mất thời gian.
Thuật toá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ệugửi đi
-Bằng cách nào đó, key của người gửi sẽ được gửi đến chongười nhận, có thể là giao trước hoặc sau khi mã hóa file đềuđược
-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ểnkey cho người nhận một cách an toà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ệunhư 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 toá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 toán AES có thể dùng nhiều
Trang 9kí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íchthước ô nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải
bẻ khoá thuật toá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, đượcphát triển vào năm 1971 bởi nhà nghiên cứu mật mã HorstFeistel 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àotháng 11 năm 1976 và sau đó được tái khẳng định là tiêuchuẩn vào năm 1983, 1988 và 1999
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 toán mã hóa DES làmtiê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áikhẳng định năm 1999) vào tháng 5 năm 2005, mặc dù TripleDES (3DES), vẫn được phê duyệt đối với thông tin nhạy cảmcủa chính phủ cho đến năm 2030
3 Mô tả thuật toán
Trang 10DES là thuật toán mã hoá khối, nó xử lý từng khối thông tin củabản rõ có độ dài xác định và biến đổi theo những quá trìnhphức tạp trở thành khối thông tin của bản mã có độ dài khôngđổi.
Quá trình DES có một số bước liên quan đến nó, trong đó mỗibướ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 bityêu cầu 10 vòng, khóa 192 bit yêu cầu 12 vòng, v.v
Thuật toán DES sử dụng khóa có kích thước 56-bit Sử dụngkhóa này, DES lấy một khối văn bản thuần túy 64 bit làm đầuvà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ệckiểm tra Vì thế, độ dài thực tế của khoá chỉ là 56 bit
4 Phương thức hoạt động của DES
Trang 11Các chuyên gia sử dụng DES có năm chế độ hoạt động khácnhau để 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ốitrướ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 chothuật toá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ủathuậ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 theoTiế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ệmDES
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ườiphá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 nayTriple 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 toá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épXOR 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ã hoá nhưng nó được chứng tỏ là không an toàn trước tấncông vi sai (differential cryptanalysis)
Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra mộtthuật toán mới, AES, để thay thế cho DES Tác giả của thuậttoán được biết dưới tên là Rijndael Những thuật toá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
Trang 12Ư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ựachọ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ênphầ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ẻ khoá
sẽ bẻ gãy và dò ra khoá rất nhanh
2 Có 1 mối đe doạ từ các cuộc tấn công Brute force (BruteForce là một loại tấn công mạng, trong đó bạn có một phầnmềm, xoay vòng các ký tự khác nhau, kết hợp để tạo ra mộtmậ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 trongnhững sai lầm lớn nhất Nếu họ biết trước rằng chi tiết củathuật toán sẽ được công bố để mọi người có thể viết chươngtrì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ụngcá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ã hoá không quá mạnh
Trang 13Nó đượ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
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 (bruteforce, phân tích mật mã khác biệt/tuyến tính) do dựa trên
Trang 14thuật toán 56 bit, nên không còn hữu ích nữa khi vi xử lý máytí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 toán DES để truyền thông điệp 3 lần liên tiếp với 3khóa mã hóa khác nhau 3DES khiến dữ liệu an toàn hơn trướckiểu tấn công brute force thời đó
15 thuật toán được đề xuất thay thế DES, bắt đầu quy trình 5nă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à “đơnRijindael”
AES là chuẩn mở vì khi đó chuẩn thực sự cũng chưa được xácđịnh Trong quá trình thiết kế, nó cũng nhận bình luận, góp ý
Nó được Viện tiêu chuẩn và kỹ thuật quốc gia Hoa Kỳ phát triểnvớ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 toàn.NSA cũng tham gia xem xét 15 bản đề xuất Tới tháng 8/1999chỉ còn 5 thuật toá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êncho chính phủ Mỹ vào năm 2002 và cả NSA cùng các tổ chứckhá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ùngtrong khối tư nhân, là chuẩn mã hóa phổ biến nhất với mã hóakhó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ểucá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
Trang 15Ma trận hiển thị trong hình trên được gọi là một mảng trạngthái Tương tự, khóa đang được sử dụng ban đầu được mở rộngthành (n + 1) khóa, với n là số vòng phải tuân theo trong quá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à 11khóa
Thuật toá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áckhóa 128, 192 và 256 bit Vì thuật toán AES được coi là an toànnên nó nằm trong tiêu chuẩn trên toàn thế giới
Trang 164 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ớinhiều vòng để tạo ra bản mã Số lượng vòng tùy thuộc vào kíchthước khóa được sử dụng Kích thước phím 128 bit cho biết 10vò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 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 toán, khóa nàycần được mở rộng để lấy các khóa cho mỗi vòng, bao gồm cảvòng 0
Các bước trong mỗi vòng
Mỗi vòng trong thuật toá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ế)