1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)

187 184 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo Trình An Toàn Và Bảo Mật Thông Tin: Phần 2
Tác giả PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội
Trường học Trường Đại Học Khoa Học Công Nghệ
Chuyên ngành An Toàn Và Bảo Mật Thông Tin
Thể loại giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 187
Dung lượng 2,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình An toàn và bảo mật thông tin được biên soạn nhằm cung cấp kiến thức về an toàn và bảo mật thông tin theo tiếp cận quản trị rủi ro cho thông tin trong hệ thống thông tin. Giáo trình kết cấu gồm 7 chương và chia thành 2 phần, phần 2 trình bày những nội dung về: mã hóa thông tin; sao lưu và phục hồi thông tin; đảm bảo an toàn cho hệ thống thông tin; an toàn dữ liệu trong thương mại điện tử;... Mời các bạn cùng tham khảo!

Trang 1

Chương 4

MÃ HÓA THÔNG TIN

Mã hoá đóng vai trò quan trọng và có rất nhiều ứng dụng trong đời sống xã hội, đặc biệt là trong lĩnh vực an toàn bảo mật thông tin Ngày nay, các kỹ thuật mã hoá được sử dụng ngày càng phổ biến hơn trong nhiều lĩnh vực khác nhau như an ninh, quốc phòng, và đặc biệt khi chúng ta đang triển khai mạnh mẽ TMĐT, thì việc ứng dụng mã hoá ngày càng trở nên cần thiết

Chương 4 trình bày về mã hoá dữ liệu với các vấn đề liên quan bao gồm: Các vấn đề về tính an toàn của một thuật toán mã hóa, các kỹ thuật phá mã hiện nay và đánh giá độ an toàn của một giải thuật mã hoá Với mỗi hệ mã hóa đều giới thiệu về đặc điểm, mô hình hoạt động, những ưu, nhược điểm chính và phạm vi ứng dụng trong bảo mật thông tin Đồng thời, một số hệ mã hoá thường dùng trong bảo mật thông tin hiện nay như

hệ thống mã DES, RSA, các hệ mã hóa cổ điển cũng được giới thiệu trong chương này

4.1 TỔNG QUAN VỀ MÃ HÓA

4.1.1 Khái niệm hệ mã hóa

Mã hóa là phương thức biến đổi thông tin từ định dạng thông thường (văn bản, hình ảnh, âm thanh, biểu tượng, ) thành một định dạng khác không giống như ban đầu nhưng có thể khôi phục lại được, (việc khôi phục này gọi là giải mã) Mục đích chính của mã hóa là để đảm bảo tính bí mật của thông tin khi chúng được truyền trong những môi trường không đảm bảo an toàn

Việc mã hóa thông tin được thực hiện bằng việc sử dụng một giá trị đặc biệt gọi là khóa mã (key) Cả hai phía gửi và nhận thông tin đều phải biết giải thuật mã hóa và khóa để thực hiện việc mã hóa và giải mã thông tin Thông tin đã được mã hóa có thể bị nghe (xem) trộm nhưng không thể

Trang 2

bị giải mã để lấy ra thông tin đích thực nếu không biết giải thuật mã hóa và khóa Như vậy, mã hóa cung cấp tính bí mật cho thông tin trong quá trình truyền thông trên các kênh truyền

Ngành khoa học chuyên nghiên cứu về mã hóa và giải mã là ngành mật mã Đây là một ngành khoa học ứng dụng toán học, các thuật toán ứng dụng vào biến đổi thông tin từ định dạng ban đầu một định dạng khác Nó đóng vai trò quan trọng và có rất nhiều ứng dụng trong đời sống xã hội ngày nay, từ các lĩnh vực như an ninh, quốc phòng, đến các hoạt động trong sản xuất kinh doanh của các tổ chức, doanh nghiệp

Mã hóa thông tin nhằm mục đích giấu đi nội dung thực tế của thông tin mà người dùng muốn truyền trong quá trình truyền tin cũng như trong việc lưu trữ thông tin Phương pháp này dùng để tránh tình trạng thông tin

bị đánh cắp và sử dụng vào những mục đích không tốt Có thể chia quá trình mã hóa thông tin thành hai phần:

- Mã hóa: là giai đoạn chuyển đổi thông tin nguyên gốc ban đầu thành các định dạng thông tin được mã hóa (gọi là bản mã)

- Giải mã: từ bản mã thông tin nhận được, tiến hành biến đổi để thu lại được thông tin nguyên gốc như trước khi mã hóa

Hình 4.1 Mô hình truyền tin có bảo mật cơ bản

Trang 3

Trong truyền thông, để đảm bảo sự bí mật của thông tin thì trước khi truyền, thông tin được mã hoá ở phía người gửi sau đó được giải mã ở phía người nhận Quá trình này còn gọi là quá trình truyền thông tin có bảo mật hay truyền tin an toàn Có thể mô tả mô hình truyền thông tin có bảo mật như Hình 4.1

Sơ đồ mô hình truyền tin bảo mật trên có thể giải thích ngắn gọn: Giả sử có 3 đối tượng tham gia quá trình truyền tin là người gửi là S, người nhận là R và kẻ tấn công là E

- S muốn gửi một thông điệp X đến R qua một kênh truyền thông tin nào đó và E có thể nghe trộm và ăn cắp thông tin này Để chống lại việc mất thông tin, S sử dụng một phép biến đổi (mã hóa) lên thông điệp X đang ở dạng nguyên gốc ban đầu (dạng đọc được - Plaintext) để tạo thành một đoạn mã hóa Y (Cryptogram) không thể đọc được hoặc nội dung đã

bị thay đổi đi nhiều

- Khi đó Cryptogram Y (hay còn gọi là Ciphertext - thông điệp đã được mã hoá) đã thực hiện che giấu nội dung của đoạn Plaintext X ban đầu Khóa dùng để mã hõa dữ liệu này là một thông số chỉ có bên gửi S và bên nhận R biết mà thôi, sau khi R nhận được bản Ciphertext sẽ tiến hành giải mã và lấy về nội dung ban đầu

Giả sử trong quá trình truyền tin, E nghe lén và đánh cắp được thông tin (Y) thì cũng không thể giải mã và biết được nội dung của thông tin ban đầu

Ngày nay, mã hoá đã trở thành một ngành khoa học ứng dụng quan trọng, các ứng dụng mã hóa và bảo mật thông tin ngày càng phổ biến hơn

và thực sự cần thiết cho tất cả các lĩnh vực sử dụng thông tin kể cả chính phủ, các tổ chức, doanh nghiệp và các cá nhân:

- Đối với chính phủ: Mã hóa nhằm đảm bảo thông tin trong quân sự

và ngoại giao, bảo vệ thông tin trong các lĩnh vực trọng yếu mang tầm cỡ quốc gia

Trang 4

- Đối với các tổ chức, doanh nghiệp: Mã hóa nhằm bảo vệ các thông tin nhạy cảm, các thông tin mang tính chiến lược của các tổ chức, doanh nghiệp

- Đối với các cá nhân: Mã hóa nhằm bảo vệ các thông tin riêng tư trong liên lạc với thế giới bên ngoài thông qua các kênh truyền tin, đặc biệt

là trên mạng Internet và các phương tiện truyền thông xã hội

4.1.2 Vài nét về lịch sử mã hóa

Mật mã học hay mã hóa là một ngành có lịch sử xuất hiện từ hàng nghìn năm nay, lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển hay còn gọi là các phương pháp mật mã hóa với bút, giấy và đôi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản dao, đá khắc lên các vật liệu như thẻ tre, da động vật, vách đá Vào những năm đầu của thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật mã hóa Sự ra đời và phát triển mạnh mẽ của ngành điện

tử và máy tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã học phát triển nhảy vọt lên một tầm cao mới, sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹ thuật phá mã (hay thám mã) Những bằng chứng sớm nhất về sử dụng mật mã học là các chữ tượng hình được tìm thấy trên các bức tượng Ai Cập cổ đại (cách đây khoảng 4500 năm) Những ký hiệu tỏ ra không phải để phục vụ mục đích truyền thông tin bí mật mà thường là nhằm mục đích gợi nên những điều thần bí, trí tò mò hoặc thậm chí để tạo sự thích thú cho người xem Muộn hơn, các học giả về tiếng Hebrew có sử dụng một phương pháp mã hóa thay thế bảng chữ cái đơn giản chẳng hạn như mật mã Atbash (khoảng năm 500 đến năm 600) Người Hy Lạp cổ đại cũng được biết đến là đã sử dụng các kỹ thuật mật mã Cũng có những bằng chứng rõ ràng chứng tỏ người La Mã nắm được các kỹ thuật mật mã (mật mã Caesar và các biến thể) Thậm chí đã có những đề cập đến một cuốn sách nói về mật mã trong quân đội La Mã, tuy nhiên cuốn sách này đã thất truyền Tại Ấn Độ, mật

mã học cũng khá nổi tiếng, trong cuốn sách Kama Sutra, mật mã học

Trang 5

được xem là cách những người yêu nhau trao đổi thông tin mà không bị phát hiện

Mật mã học ngày càng trở nên quan trọng dưới tác động của những thay đổi, cạnh tranh trong chính trị và tôn giáo Chẳng hạn tại châu Âu, trong và sau thời kỳ Phục Hưng, các công dân của các thành bang thuộc

Ý, gồm cả các thành bang thuộc giáo phận và Công giáo La Mã, đã sử dụng và phát triển rộng rãi các kỹ thuật mật mã

Ngoài các nước ở Trung Đông và Châu Âu, mật mã học hầu như không được phát triển Tại Nhật Bản, mãi cho tới 1510, mật mã học vẫn chưa được sử dụng và các kỹ thuật tiên tiến chỉ được biết đến sau khi nước này mở cửa với phương Tây (thập kỷ 1860)

Tuy mật mã học có một lịch sử lâu dài và phức tạp, mãi cho đến thế

kỷ 19 của thế kỷ 20 nó mới được phát triển một cách có hệ thống, không chỉ còn là những tiếp cận nhất thời, vô tổ chức, những ví dụ về phân tích

mã bao gồm công trình của Charles Babbage trong kỷ nguyên của Chiến tranh Krim về toán phân tích mật mã đơn ký tự, công trình của ông đã được Friedrich Kasiski, người Phổ, khôi phục và công bố, tại thời điểm này, để hiểu được mật mã học, người ta thường phải dựa vào những kinh nghiệm từng trải qua để kiểm nghiệm

Trong thời gian trước và tới thời điểm của Thế chiến II, nhiều phương pháp toán học đã hình thành (đáng chú ý là ứng dụng của William

F Friedman dùng kỹ thuật thống kê để phân tích và kiến tạo mật mã và thành công bước đầu của Marian Rejewski trong việc bẻ gãy mật mã của

hệ thống Enigma của Quân đội Đức) Sau Thế chiến II trở đi, cả hai ngành, mật mã học và phân tích mã, ngày càng sử dụng nhiều các cơ sở toán học, tuy thế, chỉ đến khi máy tính và các phương tiện truyền thông cùng mạng Internet trở nên phổ biến, người ta mới có thể mang tính hữu dụng của mật

mã học vào trong những thói quen sử dụng hàng ngày của mọi người, thay

vì chỉ được dùng bởi các chính quyền quốc gia hay các hoạt động kinh doanh lớn trước đó

Trang 6

4.1.3 Vai trò của mã hóa và quy trình mã hóa

Yêu cầu của các hệ mật mã cần phải thỏa mãn các yêu cầu sau:

- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText)

để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin (Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn

- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong

hệ thống đến người nhận hợp pháp là xác thực (Authentication)

- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng

Ưu điểm lớn nhất của bất kỳ hệ mật mã bất kỳ đó là có thể đánh giá được độ phức tạp tính toán mà “kẻ địch” phải giải quyết bài toán mới có thể lấy được thông tin đã được mã hoá Tuy nhiên mỗi hệ mật mã có một

số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán nên có thể áp dụng các thuật toán mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo yêu cầu về độ an toàn của các ứng dụng

4.1.4 Các yêu cầu của hệ mã hóa

Để đảm bảo được các yêu cầu về an toàn và bảo mật thông tin, các

hệ mã hoá cần phải có các tính chất sau:

(1) Tính hỗn loạn (Confusion): Mã hoá phải làm cho sự phụ thuộc của bản mã (ciphertext) vào các bản rõ (plaintext) là thực sự phức tạp, nhằm gây sự rối loạn đối với những người có ý định tìm quy luật để phá

mã nhằm thu được thông tin nguyên bản

(2) Tính khuếch tán (Diffusion): Làm cân bằng tỉ lệ xuất hiện các ký

tự trong bản mã hóa, qua đó tạo ra sự khó khăn cho những người có ý định phá mã bằng phương pháp thống kê dựa trên tỷ lệ các mẫu lặp Chẳng hạn,

để san bằng xác suất xuất hiện của các ký tự cũng như các nhóm ký tự, có thể thêm một đoạn văn bản thừa vào văn bản sau khi mã hóa

Trang 7

Các thuật toán mã hóa đều có một điểm chung đó là sử dụng một loại khóa mã trong quá trình mã hóa và giải mã Độ an toàn của giải thuật mã hóa phụ thuộc rất nhiều vào sự đảm bảo bí mật của khóa mã này, nghĩa là phụ thuộc vào việc làm thế nào để chỉ người gửi và người nhận thông tin đích thực mới biết được khoá mã Các hệ mã hóa nói chung đều thường bị tấn công nhằm xác định ra khóa mã một cách nhanh nhất để có thể tìm được thông tin nguyên bản

Độ an toàn của một hệ mã hóa: Trên phương diện lý thuyết, về độ an

toàn của một hệ mã hóa có thể phân ra làm 2 loại: an toàn vô điều kiện và

an toàn tính toán

Một hệ mã hóa được coi là an toàn vô điều kiện khi bản mã thu được không chứa đủ thông tin để xác định duy nhất một nguyên bản tương ứng Nói cách khác, không thể giải mã được với bất kể thời gian kéo dài bao lâu cũng như với tốc độ và nguồn lực máy tính lớn đến như thế nào Trên thực tế, hiện nay, chỉ có hệ mã hóa độn một lần là an toàn vô điều kiện Một hệ thống mã hóa được coi là an toàn tính toán nếu nó thỏa mãn một trong hai điều kiện sau:

(1) Chi phí để phá mã vượt quá giá trị mà thông tin có thể mang lại Chẳng hạn, để có thể trộm cắp được 1 tỷ đồng của ngân hàng mà kẻ tấn công phải chi ra 2 tỷ để phá mã thì cũng không mang lại lợi ích nào cho người phá mã Trong trường hợp này có thể nói rằng chi phí phá mã vượt quá giá trị mà thông tin mang lại

(2) Thời gian phá mã vượt quá tuổi thọ thông tin Chẳng hạn như một thông báo chỉ có giá trị trong một tháng mà thời gian giải mã kéo dài tới hai tháng thì có thể xem là thời gian phá mã vượt quá tuổi thọ của thông tin hay nói cách khác khi giải mã xong kẻ tấn công cũng không đạt được lợi ích gì

Như vậy, chỉ cần một hệ mã hóa đạt được độ an toàn tính toán là đủ cho các ứng dụng thực tế Cho dù kẻ tấn công có phá được mã đi chăng nữa thì thông tin nhận được cũng không còn giá trị sử dụng Tuy nhiên, để

Trang 8

thỏa mãn được một trong hai điều kiện trên là khó để đánh giá, nên hiện nay, một hệ thống mã hoá được đánh giá là an toàn nếu nó thỏa mãn hai điều kiện sau đây: (1) Hệ mã hóa không có nhược điểm, (2) Hệ mã hóa có khóa mã có quá nhiều giá trị không thể thử hết

Như vậy, nếu một hệ mã hóa thỏa mãn hai điều kiện trên thì được coi là an toàn và có thể sử dụng trong các ứng dụng cho nhiều lĩnh vực khác nhau Có hai hệ mã hóa cơ bản là hệ mã hóa đối xứng (hệ mã hóa một khóa hay hệ mã hóa khóa bí mật) và hệ mã hóa không đối xứng (mã hóa hai khóa hay hệ mã hóa khóa công khai) Hai phương pháp này khác nhau ở số lượng khóa sử dụng, hệ mã hóa đối xứng sử dụng chỉ một khóa

bí mật để người gửi dùng để mã hóa và người nhận dùng để giải mã Trong khi đó, mã hóa không đối xứng sử dụng hai khóa khác nhau: một khóa công khai và một khóa bí mật, khóa công khai dùng để mã hóa và khóa bí mật dùng để giải mã Mỗi phương pháp mã hóa có ưu, nhược điểm riêng và do đó, có những lĩnh vực ứng dụng khác nhau

4.1.5 Các kỹ thuật phá mã phổ biến

Phá mã là nỗ lực giải mã một văn bản đã được mã hóa trong trường hợp không biết trước khóa của hệ mã hóa, phá mã dựa trên giả thiết là người giải mã nhận biết được nguyên bản cần tìm, phá mã còn được gọi là hack bản mã Phương pháp phá mã dù tốt đến đâu thì cũng là vô nghĩa nếu người giải mã không xác định được một nguyên bản sau khi giải có chính xác hay không Có thể lấy ví dụ một người nước ngoài muốn giải một bản

mã tiếng Việt nhưng lại không biết tiếng, cho dù có tìm được khóa đúng cũng không thể nhận biết được nội dung văn bản, hiện nay có hai phương pháp phá mã phổ biến là phương pháp vét cạn và phương pháp thám mã

4.1.5.1 Phương pháp vét cạn

Phương pháp vét cạn trong phá mã là phương pháp thử tất cả các khóa có thể cho đến khi xác định được nguyên bản từ bản mã, trên thực tế, phương pháp này là không khả thi đối với các khoá có độ dài lớn

Trang 9

Như vậy, với kích thước khóa là 168 bit, với chiếc máy có thể giải

mã 1012 mã trong 1giây (chưa có trong thực tế) thì cũng phải mất tới 5.9 x

1030 năm mới xong

Vì vậy, nếu sử dụng khóa độ dài 168 ký tự thì có thể coi là an toàn đối với việc phá mã bằng phương pháp vét cạn Tuy nhiên, với các phương pháp khác thì hệ mã hóa này có thể không an toàn

Thời gian để dò khóa khi sử dụng phương pháp vét cạn như Bảng 4.1 sau đây

Bảng 4.1 Thời gian tìm khoá đối với các khoá có kích thước khác nhau

4.1.5.2 Phương pháp thám mã

Dùng để khai thác những nhược điểm của giải thuật mã hóa và dựa trên những đặc trưng chung của nguyên bản hoặc một số cặp nguyên bản

- bản mã mẫu

Để tiện cho việc nghiên cứu độ an toàn của một giải thuật mã hóa, người ta phân loại ra một số trường hợp để phá mã Một thuật toán mã hóa nên đảm bảo được độ an toàn trong mọi trường hợp đề ra:

Chỉ có bản mã: Chỉ biết giải thuật mã hóa và bản mã hiện có

Biết nguyên bản: Biết thêm một số cặp nguyên bản - bản mã

Chọn nguyên bản: Chọn 1 nguyên bản, biết bản mã tương ứng

Trang 10

Chọn bản mã: Chọn 1 bản mã, biết nguyên bản tương ứng

Chọn văn bản: Kết hợp chọn nguyên bản và chọn bản mã

Trên thực tế có thể gặp tất cả các trường hợp trên Nhưng khả năng người giải mã chỉ biết giải thuật mã hóa và một số bản mã là lớn nhất và đây cũng là trường hợp khó phá mã nhất

4.2 HỆ MÃ HÓA ĐỐI XỨNG

4.2.1 Khái niệm về hệ mã hóa đối xứng

Mã hóa khóa đối xứng (hay còn gọi là mã hóa khóa đồng bộ, mã hóa một khóa) là một hệ mã hóa mà trong đó cả hai quá trình mã hóa và giải mã đều dùng chung một khóa mã

Để đảm bảo tính an toàn, khóa này phải được giữ bí mật Vì thế các thuật toán mã hóa khóa đối xứng này còn có tên gọi khác là mã hóa với một khóa bí mật (secret key cryptography) Một điều cần lưu ý là khi một người mã hóa một văn bản gốc (plaintext) thành bản mã bằng một khóa K (ciphertext) rồi gửi bản mã cho người nhận thì người nhận sau khi nhận được và muốn giải mã cũng cần phải có khóa K, nghĩa là trước đó hai người gửi và nhận đã phải trao đổi hoặc chia sẻ khóa K cùng nhau

Có thể hiểu mã hóa đối xứng (mã hoá khoá bí mật) là hệ thống mã hóa mà bên gửi và bên nhận tin cùng sử dụng chung một khóa Tức là việc

mã hóa và giải mã đều dùng một khóa chung Đây là kỹ thuật mã hóa duy nhất trước những năm 1970 và hiện vẫn được dùng rất phổ biến Mã hóa đối xứng còn được gọi mà mã hoá khóa riêng hay khóa bí mật để phân biệt với hệ thống mã hóa khóa công khai hay hệ mã hóa hai khóa hiện nay Một hệ thống mã hóa đối xứng gồm có 5 thành phần cơ bản gồm: (1) Nguyên bản: bản thông điệp trước khi được mã hóa hay nguyên bản

(2) Giải thuật mã hóa: thuật toán dùng để mã hóa nguyên bản hay chuyển đổi nguyên bản thành bản mã

Trang 11

(3) Khóa bí mật: Khóa mã, hay khóa được dùng trong quá trình mã hóa và giải mã

(4) Bản mã: thông điệp sau khi được mã hóa hay bản mã

(5) Giải thuật giải mã: thuật toán dùng để giải mã hay chuyển đổi bản mã thành nguyên bản

Hình 4.2 Mô hình hệ mã hóa đối xứng

4.2.2 Ưu điểm và nhược điểm của hệ mã hóa đối xứng

Ưu điểm chính của hệ thống mã hóa đối xứng là mô hình khá đơn

giản Mọi người có thể dễ dàng tạo ra được một thuật toán mã hóa đối xứng cho riêng mình

Chẳng hạn như một thuật toán nhân thông báo với một khóa K nào đó để tạo ra bản mã Việc giải mã chỉ đơn giản là chia cho K Với sự đơn giản và rõ ràng của mình, các thuật toán mã hóa đối xứng hiện nay đều dễ cài đặt và hoạt động hiệu quả So với các thuật toán mã hóa khóa công khai, các thuật toán mã hóa đối xứng hoạt động nhanh và hiệu quả hơn nhiều do tốc độ mã hoá và giải mã cao Vì vậy, tuy gặp một số nhược điểm nhưng hệ mã hóa đối xứng vẫn được sử dụng trong nhiều ứng dụng hiện nay

Nhược điểm chính của hệ thống mã hóa đối xứng chính là việc dùng

chung khóa của quá trình mã hóa và giải mã Rõ ràng rằng, khi đã không thể truyền tin trên một kênh truyền tin an toàn thì làm thế nào đảm bảo

Trang 12

được việc truyền khóa bí mật từ người gửi đến người nhận là an toàn Mâu thuẫn này nảy sinh ra việc muốn có một kênh an toàn để truyền dữ liệu thì trước tiên phải có một kênh an toàn để truyền khoá mã Trong mô hình mã hóa đối xứng, việc bảo mật và phân phối khóa là công việc khó khăn, phức tạp nhất Như vậy, tính bảo mật của phương pháp mã hoá này phụ thuộc vào việc giữ bí mật của khóa K, nhưng khóa K thường cũng phải được truyền trên môi trường truyền tin nên rất dễ bị hóa giải (bị “bẻ khóa”) Mặt khác, không thể gửi thông tin đã mã hóa cho một người nào đó khi không có khả năng gửi khóa cho họ và số lượng khóa sử dụng sẽ rất lớn khi số người tham gia trao đổi thông tin lớn (n(n-1)/2 khóa cho n người)

4.2.3 Các hệ mã hóa đối xứng cổ điển

Các hệ mã hóa đối xứng cổ điển được chia thành hai nhóm: Mã hóa đối xứng cổ điển dựa trên dịch chuyển mã và mã hóa đối xứng cổ điển dựa trên hoán vị

Các hệ mã hóa đối xứng dựa trên dịch chuyển mã bao gồm: Mã hóa Ceasar (mã hóa cộng); mã hóa nhân, mã hóa Vigenere, mã hóa khóa tự động (mã hóa Vigenere cải tiến),

Mã hóa đối xứng cổ điển dựa trên hoán vị bao gồm: mã hóa hàng,

mã hóa hàng rào, mã hóa khối nhị phân đơn giản và Monophabetic Cipher (mã hóa thay thế),

4.2.3.1 Hệ mã hóa thay thế Monophabetic Cipher

Hệ mã hóa theo phương pháp này dựa trên phép hoán vị trong một bảng chữ cái nào đó Chẳng hạn, trên bảng chữ cái tiếng Anh, có thể tiến hành mã hoá như sau:

Bảng 4.2 Ví dụ mã hóa Monophabetic dựa trên bảng chữ cái

Trang 13

Với thuật toán mã hoá này, ta có:

Plaintext: a Bad day

Ciphertext F GFT TFP

Trên đây là một ví dụ mang tính minh họa cho mã hóa thay thế, thực

tế, bài toán này có thể sử dụng bất kỳ một hoán vị nào của bảng chữ cái để thực hiện mã hoá, ngoài việc sử dụng bảng chữ cái, có thể sử dụng bất cứ một bảng ký hiệu nào để tiến hành thay thế chuỗi tin cần mã hoá Xét ví dụ sau:

Bảng 4.3 Mã hóa Monophabetic dựa trên chuỗi nhị phân

4.2.3.2 Hệ mã hóa hàng

Mã hóa hoán vị hàng (Column fence) còn gọi là mã hóa hoán vị đơn bảng với một khóa cho trước, khóa có thể là một hoán vị của k số tự nhiên đầu tiên hoặc là một chuỗi văn bản

Nguyên tắc của mã hóa hàng là viết các kí tự trong nguyên bản P theo hàng ngang trên k cột, k là số tự nhiên được chọn để lấy hoán vị

Trang 14

hoặc k là số ký tự xuất hiện trong chuỗi ký tự làm khóa Sau đó, viết lại các kí tự trên từng cột theo thứ tự xuất hiện trong khóa k

Bảng 4.4 Minh họa mã hóa hàng với K = 4 3 1 2 5 6 7

Ví dụ: Với nguyên bản: ATTACK POSTPONED UNTIL TWO AM

và khóa K là một hoán vị của 7 số tự nhiên đầu tiên Khóa K=4 3 1 2 5 6 7, khi đó hệ mã hóa được tiến hành theo Bảng 4.4 Khi đó bản mã thu được sẽ là: TTNAAPTMTSUOAODWCOI*KNL*PET*

Ví dụ với nguyên bản: ATTACK POSTPONED UNTIL TWO AM và khóa K = “PRIVATE” là một hoán vị của K như sau K=TEVAPRI, khi đó hệ mã hóa được tiến hành theo bảng sau:

Trang 15

Ví dụ với bản mã: TTNAAPTMTSUOAODWCOI*KNL*PET* Tổng có 28 ký tự, đem chia cho K=7, vậy được các nhóm có 4 ký tự như sau:

TTNA/APTM/TSUO/AODW/COI*/KNL/*PET*

Sau đó viết lại theo khóa K=4 3 1 2 5 6 7 thì ta thu được nguyên bản: ATTACK POSTPONED UNTIL TWO AM ***

4.2.3.3 Hệ mã hóa hàng rào

Hệ mã hóa hoán vị hàng rào (Row fence) cũng là một kiểu hoán vị

ký tự dựa trên nguyên tắc xây dựng hàng rào cho các lâu đài từ thời trung

cổ, càng nhiều lớp hàng rào thì khả năng bảo vệ càng chắc chắn, các hàng rào được xây dựng xen kẽ nhau nhằm lớp đằng sau hỗ trợ cho lớp đằng trước

Nguyên tắc chung là dựa trên số lớp hàng rào gọi là khóa K, sau đó viết theo chiều sâu của hàng rào để xây dựng bản mã Sau đó lấy các ký tự trên từng hàng để làm hoán vị và thu được bản mã

Ví dụ với nguyên bản: ATTACK AT MIDNIGHT và độ dày của hàng rào là 2 khi đó khóa K=2 và bản mã được xây dựng theo bảng sau:

Bảng 4.5 Minh họa mã hóa hàng rào với K=2

Trang 16

4.2.3.4 Hệ mã hóa Ceasar (Mã hóa cộng tính đơn bảng)

Trong phương pháp này, việc mã hóa được thực hiện bằng cách dịch chuyển chuỗi ký tự trong nguyên bản đi một giá trị cố định nào đó theo trình tự của một bảng chữ cái Với phương pháp này, khóa mã chính là số được sử dụng để dịch chuyển, phương pháp dịch chuyển lần đầu được Ceasar công bố nên còn được gọi là mã hóa Ceasar Chẳng hạn, phương pháp mã hóa cộng với khóa K = 3 Khi đó, ta có:

Bảng 4.6 Minh họa mã hóa cộng tính với K=3

Công thức sử dụng để mã hóa trong phương pháp này là:

Y = X  Z, Trong đó X là chuỗi ký tự cần mã hóa, Z là giá trị của khóa và Y là bản mã thu được, phép tính  là phép cộng đồng dư modun 26 (phép chia

trung hoa)

Ưu điểm nổi bật của phương pháp này là đơn giản, dễ sử dụng Tuy nhiên do hạn chế là không gian khóa nhỏ (số lượng khóa có thể sử dụng) nên kẻ tấn công có thể tấn công bằng phương pháp vét cạn và tìm ra khóa khá dễ dàng

Mã hóa cộng tính với khóa K=3 có thể minh họa trong Hình 5.5

Hình 4.3 Mã hóa cộng tính với bước dịch chuyển bằng 3

Trang 17

4.2.3.5 Hệ mã hoá nhân tính

Phương pháp mã hoá nhân tính được thực hiện tương tự như phương pháp mã hoá cộng tính đã trình bày trong mục 4.2.3.4, trong đó, phép cộng đồng dư được thay thế bằng phép nhân đồng dư:

Y = X  Z Tuy nhiên, một điểm chú ý là không phải mọi giá trị khóa từ 0 đến

25 đều có thể sử dụng làm khóa mã, mà chỉ có những giá trị nguyên tố cùng nhau với 26 mới có thể dùng làm khóa được, vì vậy, chỉ có 12 khóa

có thể sử dụng Giả sử sử dụng K= 2 làm khóa mã, khi đó ta có:

2*1 = 2 mod 26 tức là ký tự B sẽ được chuyển thành ký tự C trong bản mã

2*14 = 2 mod 26 nghĩa là ký tự O cũng được chuyển thành ký tự C trong bản mã

Như vậy, cùng một ký tự C trong bản mã, có hai giá trị tương ứng trong nguyên bản, điều này dẫn đến tình trạng nguyên bản thu được sẽ có ngữ nghĩa nhập nhằng, không thống nhất, hay nói cách khác là không thể giải mã được bản mã này Vì vậy, các khóa K có giá trị không đồng dư với

26 thì không được sử dụng cho hệ mã hóa nhân tính

Trong phương pháp mã hoá nhân tính, một hạn chế là số lượng khóa được sử dụng là rất ít nên có thể dễ dàng bị phá mã bằng thuật toán vét cạn, để tăng số lượng khóa người ta thường kết hợp phương pháp mã hoá cộng tính và phương pháp mã hoá nhân tính làm một Chẳng hạn, sử dụng công thức:

Y = X Z  K Tùy vào thực tế hiện nay có thể thực hiện việc cộng tính trước hay thực hiện nhân tính trước Thứ tự thực hiện sẽ quyết định cách thức giải

mã cho bản mã thu được

Trang 18

4.2.3.6 Hệ mã hoá Vigenere (Mã hóa cộng tính đa bảng)

Hệ mã hóa Vigenère được phát triển dựa trên mã hóa cộng tính Ceasar, do hạn chế của mã hóa cộng tính đơn bảng là số lượng khóa quá

bé, có thể phá mã trong thời gian ngắn bằng vét cạn nên Vigenere cải tiến thành hệ mã hóa cộng tính đa bảng

Nguyên tắc dựa trên việc dịch chuyển xoay vòng theo thứ tự chữ cái của khóa K Chẳng hạn với khóa D= k1k2 kd và nguyên bản P, khi đó bản mã thu được dựa trên việc dịch chuyển thứ tự từng chữ cái trong P theo thứ tự ký tự tương ứng trong D Với mỗi chữ cái của văn bản P, khi đó, đặt p = 0 nếu chữ cái là a, p = 1 nếu chữ cái là b, sau đó bản mã thu được dựa trên công thức C = E(p) = (p + i) mod 26 với i là kí tự thứ i trong khóa D

Mã hóa và giải mã Vigenere dựa trên nguyên tắc gọi là hình vuông Vigenere bao gồm 26 hàng và 26 cột các chữ cái tiếng Anh Mỗi hàng dịch chuyển theo thứ tự của chữ cái đầu hàng, mỗi cột là giá trị các ký tự cần

mã hóa hoặc giải mã

Ví dụ với nguyên bản: “ATTACK AT MIDNIGHT” và khóa K= “CIPHER” thì bản mã được xây dựng như Bảng 4.7 và bản mã thu được sẽ là: “CBIHGBCBBPHEKOWA”

Bảng 4.7 Minh họa mã hóa Vigenere

Trang 19

Hình 4.4 Hình vuông Vigenere dùng để mã hóa và giải mã

4.2.3.7 Hệ mã hoá khóa tự động (Mã hóa cộng tính đa bảng cải tiến)

Hệ mã hóa khóa tự động được cải tiến dựa trên hệ mã hóa Vigenere, thay vì khóa được lặp đi lặp lại để mã hóa nguyên bản, thì hệ mã hóa khóa

tự động lấy đoạn nguyên bản đầu tiên gắn vào khóa để làm khóa tự động trong xây dựng bản mã

Nguyên tắc hoạt động tương tự như hệ mã hóa Vigenere, ví dụ với nguyên bản: “ATTACK AT MIDNIGHT” và khóa K=”CIPHER” thì bản

mã của hệ mã hóa khóa tự động được xây dựng như Bảng 4.8 và bản mã thu được sẽ là: “CBIHGBAMFIFNBSPW”

Trang 20

Bảng 4.8 Minh họa mã hóa khóa tự động

ký tự trong khóa

4.2.4 Hệ mã hóa đối xứng hiện đại

4.2.4.1 Vài nét về hệ mã hóa DES (Data Encryption Standard)

Với sự ra đời và phát triển nhanh chóng của máy tính điện tử, đặc biệt là mạng máy tính đã làm cho việc trao đổi thông tin trở nên thuận tiện

và trở thành nhu cầu của tất cả mọi người cũng như các tổ chức, doanh nghiệp trên toàn thế giới Chính vì thế, nhu cầu về việc đảm bảo an toàn cho các thông tin trong quá trình trao đổi trên các kênh truyền thông ngày càng được nâng cao Từ sau năm 1949 là thời kỳ bùng nổ của ngành khoa học mã hóa với rất nhiều phương pháp mã hóa mới ra đời, cho đến những năm 1970 của thế kỷ trước thì nhu cầu về một chuẩn mã hóa chung về mặt thuật toán đã trở nên rõ ràng với các lý do sau: (1) Sự phát triển nhanh chóng của công nghệ thông tin và mạng máy tính làm bùng nổ nhu cầu về

an toàn và bảo mật thông tin, (2) Các thuật toán mã hóa theo các phương pháp trước đây không còn phù hợp trong điều kiện mới, (3) Các thiết bị khác nhau đòi hỏi cần có sự trao đổi thông tin được mã hóa khác nhau Các thuật toán mã hóa trong giai đoạn này cần thiết phải có các tính chất:

(1) Bảo mật ở mức cao,

Trang 21

(2) Thuật toán được đặc tả và công khai hoàn toàn, nghĩa là tính bảo mật không dựa trên thuật toán,

(3) Dễ dàng cài đặt,

(4) Có tính mềm dẻo, thích hợp với nhiều ứng dụng

Trước những yêu cầu bức thiết trên, vào năm 1973 chính phủ Mỹ đã

có những hỗ trợ để khuyến khích cho việc phát triển một hệ thống mã hõa mới và kết quả là đến năm 1977 hãng IBM đã cho ra đời và phát triển hệ thống mã DES như chúng ta vẫn sử dụng ngày nay

4.2.4.2 Mô tả mã hóa DES (Data Encryption Standard)

DES là thuật toán mã hoá khối (Block Algrithms), với cỡ của một khối là 64 bit Một khối 64 bit bản rõ được đưa vào, sau khi mã hoá dữ liệu đưa ra là một khối bản mã 64 bit Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá Khoá mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ được sử dụng để kiểm soát lỗi Các bit chẵn lẻ nằm ở các vị trí 8,

16, 24, , 64 Tức là cứ 8 bit khoá thì trong đó có một bit kiểm soát lỗi, bit này qui định số bit có giá trị “1” của khối 8 bit đó theo tính bù chẵn

Thuật toán DES được tiến hành theo 3 giai đoạn:

1 Với bản rõ cho trước X, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của X theo phép hoán vị cố định ban đầu IP

Ta viết:

𝑥0 = 𝐼𝑃(𝑋) = 𝐿0𝑅0, trong đó 𝐿0 gồm 32 bit đầu và 𝑅0 là 32 bit cuối

2 Sau đó tính toán 16 lần lặp theo một hàm xác định

Ta sẽ tính 𝐿𝑖𝑅𝑖, 1  i 16 theo quy tắc sau:

𝐿𝑖 = 𝑅𝑖− 1 ; 𝑅𝑖 = 𝐿𝑖− 1  𝑓(𝑅𝑖 − 1, 𝐾𝑖)

Trong đó  kí hiệu phép hoặc loại trừ của hai xâu bit (cộng theo modulo 2), f là một hàm có thể lấy nghịch đảo, còn K1,K2, , K16 là các xâu bit độ dài 48 được tính như hàm của khoá K

Trang 22

Trên thực tế mỗi Ki là một phép chọn hoán vị bit trong K, khi đó K1,

K2, , K16 sẽ tạo thành bảng khoá, một vòng của phép mã hoá được mô tả trên Hình 4.5

3 Áp dụng phép hoán vị ngược 𝐼𝑃−1 cho xâu bit 𝑅16𝐿16, ta thu được bản mã Y

Tức là 𝑦 = 𝐼𝑃−1 (𝑅16𝐿16), chú ý thứ tự đã đảo của 𝑅16, 𝐿16

Sơ đồ chung của hệ thống mã DES như sau:

Theo sơ đồ trên chúng ta thấy DES là phương pháp mã hóa khối với

độ dài khối vào là X=64 bit, đầu ra là Y=64 bit và độ dài khóa là K=56 bit DES thực hiện trên từng khối 64 bit bản rõ Sau khi thực hiện hoán

vị khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bit Tiếp đó, có 16 vòng lặp giống hệt nhau được thực hiện, được gọi là các hàm ƒ, trong đó dữ liệu được kết hợp với khoá

Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối cùng (hoán vị ngược) sẽ kết thúc thuật toán

Cơ bản có thể nói rằng DES cơ bản có các tính chất như sau:

Sử dụng khoá 56 bit

Xử lý khối vào 64 bit, biến đổi khối vào thành khối ra 64 bit

Mã hoá và giải mã được sử dụng cùng một khoá

DES được thiết kế để chạy trên phần cứng

DES thường được sử dụng để mã hoá các dòng dữ liệu mạng và mã hoá dữ liệu được lưu trữ trên đĩa

4.2.4.3 Giải mã DES và vấn đề an toàn của DES

Sau khi thay đổi, hoán vị, XOR và dịch vòng, chúng ta có thể nghĩ rằng thuật toán giải mã phức tạp, khó hiểu như thuật toán mã hoá và hoàn toàn khác thuật toán mã hoá Trái lại, sự hoạt động được lựa chọn để

Trang 23

đưa ra một đặc tính hữu ích: cùng thuật toán làm việc cho cả mã hoá và giải mã

Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hoá một khối Chỉ có sự khác nhau đó là các khoá phải được sử dụng theo thứ

tự ngược lại Nghĩa là, nếu các khoá mã hoá cho mỗi vòng là k1, k2, k3, , k15, k16 thì các khoá giải là k16, k15, , k3, k2, k1 Giải thuật để tổng hợp khoá cho mỗi vòng cũng tương tự Có khác là các khoá được dịch phải và

số vị trí bit để dịch được lấy theo chiều ngược lại

Sự an toàn của DES: Đã có rất nhiều sự nghiên cứu về độ dài của khoá, số vòng lặp và thiết kế của hộp S (S-boxes) Hộp S có đặc điểm là khó hiểu, không có bất cứ sự rõ ràng nào cũng như lí do vì sao chúng phải như vậy Mọi tính toán trong DES ngoại trừ các hộp S đều tuyến tính, tức việc tính XOR của hai đầu ra cũng giống như phép XOR hai đầu vào rồi tính toán đầu ra Các hộp S chứa đựng thành phần phi tuyến của hệ là yếu

tố quan trọng nhất đối với sự an toàn của hệ thống

Tính bảo mật của một hệ mã hoá đối xứng là một hàm hai tham số là

độ phức tạp của thuật toán và độ dài của khoá Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật toán, có nghĩa rằng sẽ không có phương pháp nào để phá vỡ hệ thống mật mã hơn là cố gắng thử mọi khoá

có thể, phương pháp đó được gọi là Brute-Force Attack hay còn gọi là tấn công vét cạn xoay vòng khóa Nếu khoá có độ dài 8 bit, suy ra sẽ có 28=256 khoá, vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra khoá đúng Nếu khoá có độ dài 56 bit, thì sẽ có 256 khoá có thể sử dụng

Giả sử một Supper-computer có thể thử một triệu khoá trong một giây, thì nó sẽ cần 2000 năm để tìm ra khoá đúng, còn nếu khoá có độ dài

64 bit, thì với chiếc máy trên sẽ cần 600.000 năm để tìm ra khoá đúng trong số 264 khoá Nếu khoá có độ dài 128 bit, thì sẽ mất 1025 năm để tìm

ra khoá đúng Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025 thì một thời gian quá dài Với một khoá 2048 bit, một máy tính song song thực hiện hàng tỉ tỉ phép thử trong một giây sẽ tiêu tốn một khoảng thời gian là 10597 năm để tìm ra khoá

Trang 24

Hình 4.5 Sơ đồ chung của DES

Hệ mã hóa DES hiện thời có thể đạt được tốc độ mã hoá cực nhanh

và có nhiều ứng dụng trong thực tiễn, công ty Digital Equipment đã thông báo tại hội nghị CRUPTO’92 rằng họ sẽ chế tạo một xung có 50 nghìn xung có thể mã hoá với tốc độ 1 Gbit/s bằng cách xung nhịp có tốc độ 250MHz Giá của xung này vào khoảng 300$

Tới năm 1991 đã có 45 ứng dụng phần cứng và chương trình cơ sở

Trang 25

dụng quan trọng của DES là trong giao dịch ngân hàng Mỹ - (ABA) DES đã được dùng để mã hoá các số định danh cá nhân (PIN) và hỗ trợ trong xác thức việc chuyển tài khoản bằng máy ATM DES cũng được Hệ thống chi trả giữa các nhà băng của Ngân hàng hối đoái (CHIPS) dùng để xác thực các giao dịch lớn DES còn được sử dụng rộng rãi trong các tổ chức chính phủ Chẳng hạn như bộ năng lượng, Bộ Tư pháp và Hệ thống dự trữ liên bang Mỹ

4.3 HỆ MÃ HÓA KHÔNG ĐỐI XỨNG

4.3.1 Khái niệm về hệ mã hóa không đối xứng

Các thuật toán mã hóa khóa đối xứng có một nhược điểm là nếu hai người dùng muốn trao đổi thông tin bí mật cần phải trao đổi khóa bí mật trước đó Khóa bí mật này cần phải được trao đổi theo một cách thức an toàn, không phải bằng các phương thức thường dùng để liên lạc trong môi trường mở vì dễ bị lộ Điều này khó thực hiện và nói chung là không thể đảm bảo bí mật, nhất là trong trường hợp muốn trao đổi thông tin với nhiều đối tác thì thực tế là không thực hiện được

Vì vậy mã hóa khóa công khai (hay khóa bất đối xứng) được đưa ra như là một giải pháp thay thế Thực ra mã hóa bất đối xứng không thay thế hoàn toàn mã hóa đối xứng mà người ta sử dụng đồng thời cả hai loại để

bổ sung, hỗ trợ cho nhau

Năm 1874, William Stanley Jevons xuất bản một cuốn sách mô tả mối quan hệ giữa các hàm một chiều (one way function) với mật mã học, đồng thời đi sâu vào bài toán phân tích ra thừa số nguyên tố (sử dụng trong thuật toán RSA) Tháng 7 năm 1996, một nhà nghiên cứu đã bình luận về cuốn sách trên như sau: Trong cuốn The Principles of Science: A Treatise

on Logic and Scientific Method được xuất bản năm 1890, William S Jevons đã phát hiện nhiều phép toán rất dễ thực hiện theo một chiều nhưng rất khó theo chiều ngược lại, điều đó chứng tỏ nhiều thuật toán mã hóa thực hiện rất dễ dàng trong khi giải mã thì rất khó khăn Chẳng hạn tác giả nêu ra bài toán: ta có thể nhân để tìm tích số của các số nguyên tố nhưng

Trang 26

ngược lại, muốn phân tích một số tự nhiên khá lớn ra các thừa số nguyên

tố thì là điều không dễ dàng (thuật toán Euclide)

Đây chính là nguyên tắc cơ bản của thuật toán mã hóa khóa công khai RSA (tuy rằng tác giả không phải là người phát minh ra mã hóa khóa công khai) Thuật toán mã hóa khóa công khai được thiết kế lần đầu tiên bởi James H Ellis, Clifford Cocks và Malcolm Williamson tại Anh vào đầu thập kỷ 70 của thế kỷ trước Thuật toán đó sau này được phát triển và biết đến dưới tên thuật toán Diffie-Hellman và là một trường hợp đặc biệt của thuật toán RSA, tuy nhiên những thông tin này chỉ được tiết lộ ra vào năm 1997

Thuật toán mã hóa khóa công khai có cơ sở hoàn chỉnh đầu tiên được Ron Rivest, Adi Shamir và Leonard Adleman (Gọi tắt là RSA) khởi xướng vào năm 1977 tại Học viện Kỹ thuật Massachusett - MIT (Massachusett Institute of Technology) Công trình này được công bố vào năm 1978 và thuật toán được đặt tên là thuật toán RSA - theo 3 chữ cái đầu của các đồng tác giả RSA sử dụng phép toán lũy thừa theo modulo (với modulo được tính bằng tích số của 2 số nguyên tố lớn) để mã hóa và giải mã cũng như tạo chữ ký số Độ an toàn của thuật toán được đảm bảo vì không tồn tại kỹ thuật hiệu quả để phân tích một số rất lớn thành thừa số nguyên tố

Mã hóa khóa công khai là một dạng mã hóa cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa bí mật trước đó, điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai (Public key) và khóa riêng (Private key) hay khóa bí mật (Secret key)

Điều quan trọng đối với hệ thống là không thể (hoặc rất khó) tìm ra khóa bí mật nếu chỉ biết khóa công khai, hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:

- Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được

Trang 27

- Tạo chữ ký số: cho phép kiểm tra một văn bản xem nó có phải đã được tạo với một khóa bí mật nào đó hay không

- Thỏa thuận khóa: cho phép thiết lập khóa để trao đổi thông tin mật giữa hai bên

Thông thường, các kỹ thuật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng do những ưu điểm nổi bật nên chúng được sử dụng nhiều Thuật toán mã hóa bất đối xứng sử dụng hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa riêng) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã, khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa, những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách khác, mọi người biết khóa công khai đều có thể mã hóa thông tin để gửi nhưng chỉ có người biết khóa riêng (bí mật) mới có thể giải mã được thông tin đó

Khi sử dụng phương pháp mã hóa bất đối xứng, người gửi tin A sử dụng khóa công khai để mã hóa thông điệp và gửi cho người nhận B B sử dụng khóa bí mật để giải mã Nếu có một người C khác phát hiện ra mã thông điệp và thông tin về khóa công khai đã được công bố cũng rất khó

có khả năng giải mã do không nắm được khóa bí mật của B

Quá trình truyền tin sử dụng phương pháp mã hóa bất đối xứng có thể mô tả như sau: Người nhận tin B phát sinh ra một cặp khóa: Khóa công khai Kc và khóa bí mật Kr B gửi khóa công khai Kc cho A (và có thể công

bố cho tất cả mọi người) còn khóa bí mật Kr được B giữ một cách an toàn

A dùng khóa Kc để mã hóa thông điệp và gửi bản mã cho B, B dùng khóa

bí mật Kr để giải mã Có thể mô tả quá trình này bằng sơ đồ như Hình 4.6

Mô hình xác thực sử dụng khóa công khai được minh họa trong Hình 4.7 Giả sử A cần gửi một bản thông báo kèm theo xác thực của mình

Trang 28

cho B A sẽ mã hóa bản thông báo bằng khóa riêng của A trước khi gửi đi

B nhận được sẽ dùng khóa công khai của A để giải mã ra thông điệp ban đầu Trong trường hợp này, B có thể tin rằng thông báo này đích thị do A gửi do không ai có thể biết khóa riêng của A để giả mạo

Hình 4.6 Sơ đồ truyền tin bằng mã hóa khóa công khai

4.3.2 Ưu điểm và nhược điểm của hệ mã hóa không đối xứng

Ưu điểm của hệ thống mã hóa khóa công khai:

(1) Đơn giản trong việc lưu chuyển khóa vì chỉ cần đăng ký một khóa công khai và những người muốn trao đổi sẽ lấy khóa này về để mã hóa thông tin truyền đi, không cần phải có một kênh bí mật để truyền khóa mã, (2) Mỗi người chỉ cần một cặp khóa công khai - khóa bí mật là có thể trao đổi thông tin với tất cả mọi người trong kênh truyền,

(3) Là tiền đề cho sự ra đời của chữ ký số và các phương pháp chứng thực số sau này

Trang 29

Hình 4.7 Cơ chế xác thực bằng hệ mã hóa khóa công khai

Nhưng việc tìm được một thuật toán mã hóa thỏa mãn được các yêu cầu đó là không dễ dàng, do một thuật toán mã hóa như vậy cần phải thỏa mãn các yêu cầu sau:

(1) Dễ dàng tạo ra được cặp khóa công khai và bí mật (KU, KR), (2) Dễ dàng tính được bản mã C = EKU(M),

(3) Có thể dễ dàng giải mã M = DKR(C),

(4) Đối thủ không thể xác định được KR khi biết KU,

(5) Đối thủ không thể xác định được M khi biết KU và C,

(6) Một trong hai khóa có thể dùng mã hóa trong khi khóa kia có thể dùng giải mã: M = DKR(EKU(M)) = DKU(EKR(M))

Hạn chế của hệ mã hóa khóa công khai là tốc độ xử lý tốn nhiều thời gian và cơ chế xác thực cần nhiều không gian trống

Về tốc độ xử lý: Các giải thuật trong mã hoá khóa công khai chủ yếu

dùng các phép nhân nên tốc độ chậm hơn nhiều so với các giải thuật mã hoá đối xứng, vì vậy, không thích hợp cho những trường hợp mã hóa thông thường và chỉ phù hợp cho các thông tin khi cần trao đổi khóa bí mật đầu phiên truyền tin

Trang 30

Tính xác thực của khóa công khai: Khi sử dụng phương pháp mã hoá

khoá công khai có thể gặp tình huống là khóa công khai có thể bị giả mạo

kẻ tấn công có thể sinh ra một cặp khóa sau đó chuyển cho A khóa công khai và nói đó là khóa công khai của B Nếu A vô tình sử dụng khóa công khai giả này thì mọi thông tin (mặc dù đã được mã hóa) của A truyền đi đều bị kẻ tấn công đọc được Tình huống xấu này có thể được giải quyết bởi một bên thứ ba được tin cậy đứng ra chứng nhận khóa công khai, những khóa công khai đã được chứng nhận gọi là chứng thực điện tử Nó được một tổ chức tin cậy gọi là tổ chức chứng thực khóa công khai Certificate Authority (CA) như VeriSign, Entrust, CyberTrust, tạo ra Có thể sử dụng khóa công khai đã được CA chứng nhận để trao đổi thông tin với mức độ bảo mật cao Như vậy, khi sử dụng mã hoá khoá công khai thì bất cứ ai cũng có thể tạo ra một khóa và công bố đó là của một người khác

và chừng nào việc giả mạo chưa bị phát hiện thì đều có thể đọc được nội dung các thông báo gửi cho người kia Do đó cần có cơ chế đảm bảo những người đăng ký khóa là đáng tin

4.3.3 Hệ mã hóa RSA

Hệ mã hóa này được Rivest, Shamir và Adleman mô tả lần đầu tiên năm 1977 tại trường Đại học MIT, hệ mã hóa RSA là hệ mã hóa khóa công khai phổ dụng nhất hiện nay và được áp dụng vào hầu hết các ứng dụng thực tế

RSA sử dụng phương pháp mã hóa khối với mỗi khối là một số nguyên < n Thông thường kích cỡ của n là 1024 bit ≈ 309 chữ số trong hệ thập phân Hệ mã hóa này được đăng ký bản quyền năm 1983 và hết hạn vào năm 2000, nghĩa là hiện nay thuật toán có thể sử dụng rộng rãi mà không vi phạm luật sở hữu trí tuệ Tính an toàn của nó phụ thuộc vào độ khó khăn trong việc phân tích thừa số của một số nguyên lớn Hệ mã hóa RSA có ba bước để thực hiện:

Bước 1: Xây dựng cặp khóa (Kc, Kr)

Bước 2: Mã hóa thông điệp bằng (Kc)

Trang 31

Có thể hình dung hệ mã hóa RSA đơn giản như trường hợp sau: Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh truyền thông không an toàn (ví dụ như qua mạng Internet) Để sử dụng hệ

mã hóa RSA trong quá trình truyền tin an toàn, đầu tiên B tạo ra cho mình một cặp khóa gồm khóa công khai Kc và khóa bí mật Kr theo các bước như sau:

Bước 1: Thuật toán sinh khóa

1 Chọn 2 số nguyên tố khá lớn (>1024bit) P và Q, P ≠ Q

2 Lấy tích số: N = P*Q, N được gọi là modulo mã hóa

3 Chọn số e sao cho: 1< e < P*Q, e và tích (P-1)(Q-1) là nguyên tố cùng nhau, e được gọi là số mũ mã hóa hay số e

4 Tính số d sao cho tích số d*e ≡ 1 mod [(P-1)(Q-1)] có nghĩa là tích

số d*e chia cho tích số (P-1)(Q-1) có số dư là 1, hay là (d*e - 1) chia hết cho tích (P-1)(Q-1)

Ta dùng phương pháp thử và loại dần các số nguyên X sao cho có được: d = [X*(P-1)(Q-1) +1]/e là một số nguyên, d được gọi là số mũ giải

mã hay số d

Khi đó khóa công khai B gửi cho A hoặc bất kỳ người nào muốn trao đổi thông tin với BA qua các kênh truyền thông là cặp số (N, e), cặp (N,e) gọi là khóa công khai Kc

Khóa bí mật B giữ cho riêng mình là cặp số (N, d), cặp (N,d) gọi là khóa bí mật

Bước 2: Mã hóa thông điệp

Khi A nhận được khóa công khai Kc của B gửi, A muốn gửi thông điệp (plaintext) T (thông điệp đã được số hóa, T thực ra là một con số dạng nhị phân được đổi thành số thập phân nào đó) cho B thì A tiến hành các bước mã hóa như sau:

- A mã hóa bằng phép toán: Te mod N = C; T = plaintext, C = ciphertext Phép toán “lũy thừa theo modulo” có nghĩa là lấy T lũy thừa

mũ e rồi chia cho N và lấy số dư

- A sẽ gửi thông điệp đã mã hóa C cho B

Trang 32

Bước 3: Giải mã thông điệp

Khi B nhận được bản mã C của A gửi cho mình, B sẽ tiến hành giải mã như sau:

- B giải mã bằng phép toán: Cd mod N = T

- Như vậy là ở đây, cần phải chứng minh được rằng: (TE mod N)Dmod N = T

Điều này đã được chứng minh bằng cách ứng dụng Định lý Trung Hoa về số dư (The Chinese Remainders Theorem), thực chất việc tìm khóa riêng d chính là tìm một phép toán ngược trong vành modulo N của e

Ví dụ các bước thực hiện hệ mã hóa RSA như sau:

Bước 1: Sinh cặp khóa

Giả sử B tiến hành xây dựng cặp khóa như sau:

Công bố khóa công khai Kc = {7, 187}

Giữ bí mật khóa riêng Kr = {23, 187}

Hủy bỏ các giá trị bí mật p = 17 và q = 11

Bước 2: Mã hóa thông điệp

Giả sử A muốn gửi cho B một thông điệp T=12

Khi đó, A tiến hành lấy cặp khóa công khai Kc ={7, 187} để mã hóa T như sau:

Trang 33

C=127 mod 187 =177

Vậy, A sẽ gửi bản mã C=177 cho B

Bước 3: Giải mã thông điệp

Khi B nhận được bản mã C=177 mà A gửi cho, thì B tiến hành lấy cặp khóa bí mật Kr ={23, 187} để giải mã hóa C như sau:

T=17723 mod 187 = 12

Vậy, B sẽ gửi nhận được nội dung thông điệp A gửi là T=12

4.3.4 Một số hệ mã hóa không đối xứng khác khác

4.3.4.1 Hệ mật mã ElGamal

Hệ mật mã ElGamal là một thuật toán tương tự như hệ thống Hellman trình bày ở mục sau, được xây dựng trên bài toán logarit rời rạc,

Diffie-dù rằng tác giả của hệ mật mã này (Taher Elgamal) không đăng ký xin cấp bản quyền cho sáng tạo của mình nhưng những người sở hữu bản quyền của hệ mật mã Diffie-Hellman vì lý do nào đó vẫn xem hệ này cũng thuộc phạm vi bảo vệ của giấy phép bản quyền của mình Cũng không ai rõ lý

do thực sự của việc đăng ký tên thuật toán là ElGamal (chữ G viết hoa) trong khi họ của tác giả là Elgamal (chữ g không viết hoa)

Có thể thấy ngay nhược điểm rõ ràng của hệ ElGamal là thông điệp sau khi mã hóa có kích thước rất lớn, xấp xỉ gấp hai lần thông điệp gốc! Chính vì vậy hệ mật mã này thường không dùng để mã hóa các khối dữ liệu thông tin lớn mà chủ yếu dùng cho các thông điệp ngắn chẳng hạn như

để tạo các khóa chung

Tạo khóa công khai ElGamal: Cũng như trong trường hợp của mã

Diffie-Hellman, hai đối tác A và B có chung (công khai) một số nguyên tố

p và một số sinh g (generator) A chọn một số ngẫu nhiên a và tính A = g*a, B cũng chọn một số ngẫu nhiên b và tính B = g*b Khóa công khai của A là A và khóa riêng là a; tương tự như vậy, khóa công khai của B là

B còn khóa riêng là b

Trang 34

Mã hóa và giải mã thông điệp: Nếu B muốn gửi một thông điệp m

cho A, B sẽ chọn ngẫu nhiên một số k bé hơn p rồi tính c1 = g*k mod p; c2

= A*k * m mod p tiếp đó gửi c1 và c2 cho A A sử dụng c1 và c2 để tái hiện thông điệp bằng cách tính:

c1 - a * c2 mod p = m bởi vì rằng:

c1 - a * c2 mod p = (gk)- a * Ak * m = g-a * k * Ak * m

= (ga)-k * Ak * m = A-k * Ak * m = 1 * m = m

4.3.4.2 Hệ mật mã “xếp ba lô” Merkle-Hellman

Mật mã xếp ba lô Merkle-Hellman là một trong những hệ mật mã khóa công khai ra đời sớm nhất, do Ralph Merkle và Martin Hellman phát minh vào năm 1978 Về mặt ý tưởng hệ mật mã này được xây dựng đơn giản hơn nhiều so với hệ RSA nhưng nó đã nhanh chóng bị đổ vỡ

Mô tả: Merkle-Hellman là một hệ mật mã bất đối xứng, có nghĩa là khi giao dịch cần có hai khóa: một khóa công khai và một khóa riêng Hơn nữa, cũng giống như RSA, hai khóa đó đều là một chiều với nghĩa là khóa công khai chỉ dùng để mã hóa còn khóa riêng chỉ dùng để giải mã, cũng vì vậy nó không thể sử dụng để nhận dạng qua việc ký tên bằng mật mã Về mặt toán học, hệ Merkle-Hellman dựa trên bài toán tổng tập hợp con subset sum problem (một trường hợp riêng trong bài toán “cái ba lô” (knapsack) quen thuộc trong Toán rời rạc)

Bài toán có thể phát biểu như sau: Cho một tập hợp các con số A và một con số b, hãy tìm một tập hợp con của A cộng lại bằng b Trong trường hợp tổng quát, bài toán đó được biết là có tính NP- đủ (NP complete) (khó giải bậc NP) Tuy nhiên trong trường hợp riêng khi tập hợp các con số (được gọi là cái ba lô) là “siêu tăng” (superincreasing) với nghĩa là có thể sắp xếp thành một dãy để cho mỗi phần tử của tập hợp đều lớn hơn tổng các phần tử đi trước nó, thì bài toán có thể giải được “dễ dàng” trong thời gian đa thức bằng một thuật toán “tham lam” đơn giản

Trang 35

Tạo khóa: Trong hệ mật mã Merkle-Hellman, các khóa là các “ba

lô” Khóa công khai là một “ba lô đầy” còn khóa riêng là một “ba lô vơi” (hard and easy knapsacks) kết hợp với hai số phần tử của phép cộng, một

số nhân và một modulo, các số này được dùng để biến đổi các ba lô siêu tăng thành ba lô đầy Những con số đó cũng được dùng để biến đổi tổng của các tập con của ba lô đầy thành tổng các tập con của ba lô vơi, tính toán thực hiện được trong thời gian đa thức

Mã hóa: Để mã hóa một thông điệp, một tập con cả ba lô đầy được

chọn ra bằng cách so sánh nó với một tập hợp các bit (plaintext) có độ dài bằng độ dài chìa khóa và làm cho mỗi thành phần ứng với số 1 trong plaintext một phần tử trong tập con mà bỏ qua những thành phần ứng với

số 0 trong plaintext Các phần tử của tập con đó cộng lại với nhau, tổng số thu được cho ta ciphertext

Giải mã: Việc giải mã thực hiện được bởi vì số nhân và modulo đã

dùng để biến đổi ba lô vơi siêu tăng thành khóa công khai, cũng có thể dùng để biến đổi con số đại diện cho ciphertext thành tổng các phần tử tương ứng của balô siêu tăng Như vậy, dùng một thuật toán tham lam đơn giản, balô vơi giải ra được bằng cách dùng O(n) phép toán số học để giải mã

4.4 HÀM BĂM

4.4.1 Khái niệm về hàm băm

Để lấy một bộ phận nhỏ của một thông điệp, ta sử dụng một phương pháp toán học gọi là phương pháp hàm băm (Hash function) là một giải thuật toán học (một ánh xạ một - một (một chiều)), cho ứng với mỗi khối

dữ liệu (một dãy bit hay một đối tượng trong lập trình hướng đối tượng của thông điệp gốc) một giá trị băm duy nhất

Chú ý ở đây tính một chiều có nghĩa là: Mỗi khối dữ liệu gốc qua một hàm băm sẽ cho một giá trị băm duy nhất, tuy vậy có thể có một giá trị băm ứng với hai khối dữ liệu gốc khác nhau vì vậy không thể từ giá trị băm tìm ngược lại khối dữ liệu đã sinh ra nó, trường hợp qua một hàm

Trang 36

băm H, nếu có hai khối dữ liệu gốc nào đó cho cùng một giá trị băm thì ta gọi đấy là một sự đụng độ Tuy nhiên điều quan trọng là: Nếu hai giá trị băm khác nhau thì chắc chắn hai khối dữ liệu tạo ra chúng là khác nhau

Vì vậy, người nhận có thể tính lại giá trị băm của thông điệp nhận được rồi so sánh với giá trị tính được khi giải mã chữ ký số để kiểm tra: nếu hai giá trị khác nhau thì có thể khẳng định nội dung thông điệp đã bị thay đổi Một hàm băm được đánh giá là tốt nếu số đụng độ xảy ra rất nhỏ (xác suất rất thấp, hầu như không thể xảy ra) Một vài kỹ thuật tính toán chẳng hạn như phân bố xác suất Poisson (phân bố xác suất tiệm cận cho các sự kiện hiếm khi xảy ra) có thể dùng để phân khả năng xảy ra đụng độ của những hàm băm khác nhau đối với những nhóm dữ liệu khác nhau Về lý thuyết thì nói chung với mọi nhóm dữ liệu đều tồn tại một hàm băm được xem như là hàm băm “hoàn hảo” nhất cho nhóm dữ liệu đó Một hàm băm hoàn hảo (theo định nghĩa) là hàm băm mà đối với mọi dữ liệu trong nhóm đang xét không tạo ra những giá trị băm trùng nhau Nhưng trong thực tế rất khó để tìm được hàm băm hoàn hảo cho mỗi nhóm dữ liệu nên người

ta thường bằng lòng những hàm băm “gần hoàn hảo” nghĩa là chỉ tạo ra một số rất ít đụng độ đối với từng nhóm dữ liệu (có thể kiểm tra được)

4.4.2 Các phương pháp tạo hàm băm

Một hàm băm tốt phải thỏa mãn các điều kiện sau:

- Tính toán nhanh

- Các khóa được phân bố đều trong bảng

- Ít xảy ra đụng độ

- Xử lý được các loại khóa có kiểu dữ liệu khác nhau

Các hàm băm được xác định theo cách tạo ra giá trị băm từ một dữ liệu Có hai phương pháp chính để tạo hàm băm thường dùng là phương pháp cộng và nhân và phương pháp quay vòng

Phương pháp băm kiểu cộng và nhân: Theo phương pháp này giá trị băm được tạo ra bằng cách duyệt dọc theo chuỗi dữ liệu và liên tục cộng

Trang 37

thêm vào một giá trị xuất phát từ một giá trị được tính cho mỗi phần tử trong dữ liệu Giá trị tăng thêm ứng với mỗi phần tử thường được tính dưới dạng nhân với một số nguyên tố nào đó

Phương pháp băm bằng cách quay vòng: Cũng cộng thêm vào mỗi phần tử trong dãy một giá trị giống như phương pháp băm kiểu cộng nhưng ở đây giá trị cộng thêm được xét từ cả hai phía bên trái và bên phải, tính toán để cộng thêm vào tại mỗi phần tử

4.4.3 Một số hàm băm thông dụng

Trong mục này giáo trình giới thiệu sơ lược một số hàm băm thông dụng được sử dụng trong các hệ mã hóa hiện đại và được ứng dụng nhiều trong các hệ thống truyền tin an toàn

Bảng 4.9 Danh sách các hàm băm thông dụng

1 RS Hash Function Một hàm băm đơn giản từ thuật toán Robert

Sedgwicks

2 JS Hash Function Hàm băm tính từ hai phía do Justin Sobel đề xuất

3 PJW Hash Function Thuật toán băm dựa trên công trình của Peter J

Weinberger thuộc Phòng thí nghiệm AT&T Bell

4 BKDR Hash Function Hàm băm này được mô tả tài liệu của Brian Kernighan

và Dennis Ritchie's "The C Programming Language"

5 SDBM Hash Function Đây là dạng hàm băm được chọn sử dụng trong các

dự án mã nguồn mở SDBM

6 DJB Hash Function Do GS Daniel J Bernstein xây dựng và giới thiệu lần

đầu tiên trên newsgroup comp.lang.c Có lẽ đây là một trong những hàm băm hiệu quả nhất từ trước đến nay

đã được công bố

7 Message Digest (MD)

algorithms

Những dãy thuật toán hướng byte, sản sinh ra một giá trị băm 128 bit cho các thông điệp có độ dài bất kỳ

8 MD2 (RFC 1319) Được thiết kế cho những hệ thống có bộ nhớ hạn chế

chẳng hạn như các thẻ thông minh

Trang 38

STT Tên hàm Mô tả

9 MD4 (RFC 1320) Do Rivest phát triển, tương tự như MD2 nhưng được

thiết kế đặc biệt cho những quá trình xử lý nhanh trong phần mềm

10 MD5 (RFC 1321) Cũng do Rivest phát triển sau khi phát hiện một số

nhược điểm của MD4; sơ đồ này tương tự như MD4 nhưng hoạt động chậm hơn do phải xử lý nhiều trên dữ liệu gốc MD5 được tích hợp vào nhiều sản phẩm

dù rằng vẫn còn một số nhược điểm mà nhà mật mã học người Đức Hans Dobbertin đã chỉ ra năm 1996

11 Secure Hash Algorithm

(SHA):

Thuật toán của chuẩn hàm băm an toàn của NIST NIST's Secure Hash Standard (SHS) SHA-1 tạo ra một giá trị băm 160 bit ban đầu được công bố với tên gọi là FIPS 180-1 và RFC 3174

12 RIPEMD Một dãy thuật toán biến đổi thông điệp (message

digest) thoạt đầu xuất phát từ dự án RIPE (RACE Integrity Primitives Evaluation)

HAVAL (HAsh of

VAriable Length)

Hàm băm có độ dài biến thiên: Do Y Zheng, J

Pieprzyk và J Seberry, là một hàm băm với nhiều cấp

độ an toàn khác nhau HAVAL có thể tạo các giá trị băm với độ dài 128, 160, 192, 224, hoặc 256 bit

4.5 TỔNG KẾT CHƯƠNG 4

Chương 4 trình bày một trong các biện pháp phòng chống mất an toàn thông tin mức sâu nhất trong hệ thống thông tin đó là mã hóa thông tin Mã hóa thông tin được coi là biện pháp phòng chống mất an toàn và bảo mật thông tin hữu hiệu nhất và khó tấn công nhất trong các biện pháp đảm bảo an toàn thông tin trong hệ thống thông tin Trong chương 4 đã trình bày các khái niệm liên quan đến mã hóa, lịch sử mã hóa, các hệ mã hóa từ cổ điển đến hiện đại và những ưu nhược điểm của chúng

Chương 4 cũng trình bày chi tiết một số hệ mã hóa nổi bật qua các thời kỳ lịch sử của lĩnh vực mã hóa như các hệ mã hóa cổ điển theo phương pháp dịch chuyển, theo phương pháp mã hóa khối, theo phương pháp mã

Trang 39

hóa hoán vị; Các hệ mã hóa đối xứng hiện đại như DES, AES; Các hệ mã hóa không đối xứng như RSA, ElGamal,

CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 4

I CÂU HỎI ÔN TẬP

1 Thế nào là mã hóa? Thế nào là giải mã? Hãy nêu sự khác biệt giữa quá trình giải mã và phá mã một bản mã?

2 Vì sao mã hóa được lựa chọn là biện pháp bảo vệ sâu nhất trong

mô hình bảo mật nhiều lớp?

3 Trình bày và phân tích vai trò của mã hóa trong các hoạt động của

tổ chức, doanh nghiệp?

4 Trình bày và phân tích các yêu cầu của một hệ mã hóa? Một hệ

mã hóa đạt được những yêu cầu gì thì được coi là an toàn?

5 Trình bày các biện pháp phá mã phổ biến? Các thuật toán mã hóa đạt được điều kiện gì thì không thể phá mã?

6 Trình bày mô hình mã hóa đối xứng?

7 Trình bày mô hình mã hóa không đối xứng?

8 So sánh hệ mã hóa đối xứng và hệ mã hóa không đối xứng?

9 Vì sao các hệ mã hóa không đối xứng không thể thay thế các hệ mã hóa đối xứng? Giải thích?

10 Tại sao trên thực tế thường ứng dụng tích hợp hệ mã hóa đối xứng với hệ mã hóa không đối xứng vào các ứng dụng?

11 Trình bày ưu điểm và nhược điểm của các hệ mã hóa đối xứng?

12 Trình bày ưu điểm và nhược điểm của các hệ mã hóa không đối xứng?

13 Trình bày các hệ mã hóa đối xứng và không đối xứng được ứng dụng trên thực tế?

Trang 40

II BÀI TẬP CHƯƠNG 4

Bài 1 (Bài toán mã hóa):

Cho nguyên bản: “MIDNIGHT APPOINTMENT WITH NUMBER FIVE AT THE THEATER GATE, NOTICE THE SIGNAL”

 Hãy tìm bản mã của nguyên bản trên, biết bản mã được xây dựng dựa trên hệ mã hóa hàng với khóa K= 2 4 6 1 3 5 7

 Hãy tìm bản mã của nguyên bản trên, biết bản mã được xây dựng dựa trên hệ mã hóa hàng rào với khóa K= 4

 Hãy tìm bản mã của nguyên bản trên, biết bản mã được xây dựng dựa trên hệ mã hóa cộng (Ceasar) với khóa K= 5

 Hãy tìm bản mã của nguyên bản trên, biết bản mã được xây dựng dựa trên hệ mã hóa Vigenere với khóa K= “PRIVATE”

 Hãy tìm bản mã của nguyên bản trên, biết bản mã được xây dựng dựa trên hệ mã hóa khóa tự động với khóa K= “ADVANCED”

Bài 2 (Bài toán giải mã):

 Cho bản mã:

“LLGMKWKWAWCWCILQAGNITSXBJSQGDGLRWVACEEAGULCQFUTLXICLJNHPZITFZNX”, biết bản mã trên được xây dựng bằng hệ mã hóa Vigenere với khóa K= “SECURITY”, hãy tìm nguyên bản của bản mã trên

 Cho bản mã:

“IHWEUGKHKFMFQWEJICDHDZPXRVJIYYEYRVSEVQTKITVOBRKRRBVHFVDRLMW”, biết bản mã trên được xây dựng bằng hệ

mã hóa Khóa tự động với K= “PASSWORD”, hãy tìm nguyên bản của bản

mã trên

 Cho bản mã:

“MUTGSEUEVTEDNESIGSFIGINWBFP*ODEIISSRONTWRP

Ngày đăng: 15/07/2022, 14:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Tiêu chuẩn quốc gia - TCVN 7635: 2007, Kỹ thuật mã hóa và chữ ký số, Cryptography technique - Digital signature Sách, tạp chí
Tiêu đề: Kỹ thuật mã hóa và chữ ký số
5. Phan Đình Diệu (1999), Lý thuyết mật mã và an toàn thông tin, NXB Đại học Quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Lý thuyết mật mã và an toàn thông tin
Tác giả: Phan Đình Diệu
Nhà XB: NXB Đại học Quốc gia Hà Nội
Năm: 1999
6. Đàm Gia Mạnh (2009), Giáo trình An toàn bảo mật dữ liệu trong thương mại điện tử, NXB Thống kê Sách, tạp chí
Tiêu đề: Giáo trình An toàn bảo mật dữ liệu trong thương mại điện tử
Tác giả: Đàm Gia Mạnh
Nhà XB: NXB Thống kê
Năm: 2009
7. Trần Hùng (2017), Giáo trình Quản trị rủi ro, NXB Thống kê Sách, tạp chí
Tiêu đề: Giáo trình Quản trị rủi ro
Tác giả: Trần Hùng
Nhà XB: NXB Thống kê
Năm: 2017
8. Thái Thanh Tùng (2011), Giáo trình Mật mã học và Hệ thống thông tin an toàn, NXB Thông tin và Truyền thông Sách, tạp chí
Tiêu đề: Giáo trình Mật mã học và Hệ thống thông tin an toàn
Tác giả: Thái Thanh Tùng
Nhà XB: NXB Thông tin và Truyền thông
Năm: 2011
2. Hiệp hội Thương mại điện tử Việt Nam, Báo cáo Chỉ số Thương mại điện tử Việt Nam 2019 Khác
3. Luật an ninh mạng, Luật số: 24/2018/QH14. 4. ISO 27001:2013 Khác
9. Brotby, Krag (2009), Information Security Management Metrics: A Definitive Guide to Effective Security Monitoring and Measurement.Auerbach, 2009 Khác
10. ITIL IT Service Management-Publications. www.itil- officialsite.com/Publications/Publications.aspx Jackson, Chris (2010), Network Security Auditing. Cisco Press Khác
11. Jaquith, Andrew (2007), Security Metrics: Replacing Fear, Uncertainty, and Doubt. Addison-Wesley, 2007 Khác
12. Kruse, Warren, and Jay Heiser (2001), Computer Forensics: Incident Response Essentials. Addison-Wesley, 2001 Khác
13. Man Young Rhee (2003) Internet Security: Cryptographic principles, algorithms and protocols. John Wiley &amp; Sons, 2003 Khác
14. Manzuik, Steve, Andre Gold, and Chris Gatford (2006), Network Security Assessment: From Vulnerability to Patch. Syngress, 2006 Khác
15. Maras, Marie-Helen (2011), Computer Forensics: Cybercriminals, Laws, and Evidence. Jones &amp; Bartlett Learning, 2011 Khác
16. Mark Rhodes - Ousley (2013), Second Edittion, The Complete References: Information Security, The McGraw-Hill Companies. ISBN Khác
17. Matt Bishop (2002), Computer Security: Art and Science, Addison, Wesley Khác
18. McEntire, David. Disaster Response and Recovery. Wiley, 2006. Phillips, Brenda. Disaster Recovery. Auerbach, 2009 Khác
19. McNab, Chris (2007), Network Security Assessment: Know Your Network. O’Reilly, 2007 Khác
21. Schultz, Eugene, and Russell Shumway (2001), Incident Response: A Strategic Guide to Handling System and Network Security Breaches. Sams, 2001 Khác
23. Wallace, Michael, and Lawrence Webber (2010), The Disaster Recovery Handbook: A Step-by-Step Plan to Ensure Business Continuity.2nd ed. AMACOM, 2010 Khác

HÌNH ẢNH LIÊN QUAN

Bảng 4.1. Thời gian tìm khoá đối với các khoá có kích thước khác nhau - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Bảng 4.1. Thời gian tìm khoá đối với các khoá có kích thước khác nhau (Trang 9)
Hình 4.2. Mô hình hệ mã hóa đối xứng - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.2. Mô hình hệ mã hóa đối xứng (Trang 11)
Bảng 4.4. Minh họa mã hóa hàng với K = 4 3 1 2 5 6 7 - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Bảng 4.4. Minh họa mã hóa hàng với K = 4 3 1 2 5 6 7 (Trang 14)
Hình 4.3. Mã hóa cộng tính với bước dịch chuyển bằng 3 - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.3. Mã hóa cộng tính với bước dịch chuyển bằng 3 (Trang 16)
Hình 4.4. Hình vuông Vigenere dùng để mã hóa và giải mã - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.4. Hình vuông Vigenere dùng để mã hóa và giải mã (Trang 19)
Hình 4.5. Sơ đồ chung của DES - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.5. Sơ đồ chung của DES (Trang 24)
Hình 4.6. Sơ đồ truyền tin bằng mã hóa khóa công khai - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.6. Sơ đồ truyền tin bằng mã hóa khóa công khai (Trang 28)
Hình 4.7. Cơ chế xác thực bằng hệ mã hóa khóa công khai - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 4.7. Cơ chế xác thực bằng hệ mã hóa khóa công khai (Trang 29)
Bảng 4.9. Danh sách các hàm băm thông dụng - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Bảng 4.9. Danh sách các hàm băm thông dụng (Trang 37)
Nhược điểm của MD4; sơ đồ này tương tự như MD4  nhưng hoạt động chậm hơn do phải xử lý nhiều trên  dữ liệu gốc - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
h ược điểm của MD4; sơ đồ này tương tự như MD4 nhưng hoạt động chậm hơn do phải xử lý nhiều trên dữ liệu gốc (Trang 38)
Bảng 5.1. Minh họa một cách phân loại thông tin và nơi lưu trữ - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Bảng 5.1. Minh họa một cách phân loại thông tin và nơi lưu trữ (Trang 44)
Hình 5.1. Phần mềm EaseUS Data Recovery Wizard - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 5.1. Phần mềm EaseUS Data Recovery Wizard (Trang 56)
Hình 6.1. Các kiểu dữ liệu phi cấu trúc trong HTTT - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 6.1. Các kiểu dữ liệu phi cấu trúc trong HTTT (Trang 77)
Hình 6.2: Các thành phần trong hệ thống ISMS - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Hình 6.2 Các thành phần trong hệ thống ISMS (Trang 87)
Bảng 6.1. Ứng dụng ISO - 27001 trên thế giới - Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
Bảng 6.1. Ứng dụng ISO - 27001 trên thế giới (Trang 94)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm