Tải bản đầy đủ (.doc) (33 trang)

Thuật toán mã hóa thông tin cryptography

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (785.32 KB, 33 trang )

LỜI MỞ ĐẦU
Thế giới của chúng ta luôn sôi sục trong muôn vàn biến động được tạo ra bởi
con người. Và trong thế kỷ 21 này, máy tính là một trong những sản phẩm vĩ đại
nhất. Cùng với thời gian, người ta không muốn sử dụng một máy tính đơn lẻ nữa mà
sẽ kết nối các máy này lại thành một mạng máy tính nhằm tăng khả năng làm việc,
hiểu biết, trao đổi, cập nhật các thông tin … Mạng Internet là xu hướng phát triển
của thế giới ngày nay. Hiện nay, Internet đã trở nên rất phổ biến trên toàn thế giới.
Thông qua mạng Internet mọi người có thể trao đổi thông tin với nhau một cách
nhanh chóng thuận tiện. Những công ty phát triển và kinh doanh trên môi trường
Intranet/Internet họ phải đối diện với khó khăn lớn là làm thế nào để bảo vệ những
dữ liệu quan trọng, ngăn chặn những hình thức tấn công, truy xuất dữ liệu bất hợp
pháp từ bên trong (Intranet), lẫn cả bên ngoài (Internet). Khi một người muốn trao
đổi thông tin với một người hay một tổ chức nào đó thông qua mạng máy tính thì
yêu cầu quan trọng là làm sao để đảm bảo thông tin không bị sai lệch hoặc bị lộ do
sự xâm nhập của kẻ thứ ba. Trước các yêu cầu cần thiết đó, một số giải thuật mã
hóa đã dược xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như
khi dữ liệu được truyền trên mạng, như các giải thuật mã hóa đối xứng (DES), giải
thuật mã hóa công khai, ... Việc tìm hiểu cơ chế và thuật toán của các giải thuật này
cũng không nằm ngoài mục đích của bài ĐỒ ÁN CƠ SỞ này.
Vì kiến thức còn hạn chế nên còn nhiều thiếu sót trong đề tài về mã hóa, kính
mong các thầy cô giáo góp ý để đề tài được hoàn thiện hơn. Em xin chân thành cảm
ơn thầy Nguyễn Quang Ánh đã giúp đỡ em trong việc hoàn thành đề tài này.
Đà Nẵng, ngày……tháng……năm……

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 1 :-


MỤC LỤC
Lời mở đầu ......................................................................................................................... 1
Mục lục ............................................................................................................................... 2


I. Tổng quan mã hóa thông tin...........................................................................................4
1. Khái niệm mã hóa thông tin...........................................................................................4
2. Hệ thống mã hóa (cryptosystem)...................................................................................4
a. Confidentiality (Tính bí mật)....................................................................................4
b. Authentication (Tính xác thực)................................................................................4
c. Integrity (Tính toàn vẹn)...........................................................................................4
d. Non-repudation (Tính không thể chối bỏ)...............................................................5
3. Độ an toàn của thuật toán...............................................................................................5
4. Khái niệm về chìa khoá..................................................................................................5
5. Phân loại các thuật toán mã hoá ....................................................................................5
II. Các phương pháp mã hóa...............................................................................................6
1. Mã hóa cổ điển..............................................................................................................6
2. Mã hoá đối xứng ..........................................................................................................7
3. Mật mã bất đối xứng................................................................................................8
4. Hashing – Hàm Băm..................................................................................................9
III. Minh họa một số phương pháp mã hóa dữ liệu...........................................................11
1. Phương pháp mã hóa thay thế : CEASAR CIPHER....................................................11
2. Thuật toán mã hóa đối xứng DES................................................................................13
a. Lịch sử ra đời .........................................................................................................13
b. Nội dung phương pháp mã hóa DES......................................................................13
c. Quy trình mã hóa DES............................................................................................14
d. Chương trình mình họa...........................................................................................16
3. Thuật toán mã hóa đối xứng AES (Rijndael)..............................................................17
a. Lịch sử ra đời..........................................................................................................17
b. Đặc trưng của thuật toán AES................................................................................17
c. Quy trình mã hóa AES............................................................................................17
d. Sơ đồ mã hóa...........................................................................................................18
e. Chương trình minh họa thuật toán AES.................................................................19
4. Thuật toán mã hóa bất đối xứng RAS............................................................................20
a. Khái quát sơ lược thuật toán RSA..........................................................................20

b. Quy trình mã hóa....................................................................................................20
c. Sơ đồ thuật toán..................................................................................................…21
d. Quy trình mã hóa................................................................................................…21
e. Chương trình minh họa...........................................................................................21
5. Thuật toán MD5..............................................................................................................22
a. Mô tả thuật toán......................................................................................................22
b. Quy trình mã hóa MD5..........................................................................................22
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 2 :-


c. Sơ đồ thuật toán.....................................................................................................22
d. Chương trình mô phỏng.........................................................................................22

IV. Ứng dụng của các thuật toán mã hóa trong thương mại điện tử..........................24
1. Xác thực người dùng sử dụng giao thức SSL...........................................................24
c. Ứng dụng trong chữ ký điện tử.................................................................................28
a. Định nghĩa.........................................................................................................28
b. Qúa trình ký trong messege..............................................................................28
c. Qúa trình kiểm tra xác nhận chữ ký trên tài liệu..............................................29
d. Tầm quan trọng của chữ ký số trong thương mại điện tử................................31
V.

Kết luận....................................................................................................................... 33
1. Kết luận về đề tài........................................................................................................33
2. Tài liệu tham khảo......................................................................................................33
3. Nhận xét của giảng viên hướng dẫn...........................................................................33

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 3 :-



I. Tổng quan mã hóa thông tin

1. Khái niệm mã hóa thông tin
Thuật toán Cryptography đề cập tới nghành khoa học nghiên cứu về mã hoá và giải mã
thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin từ dạng rõ (clear text)
sang dạng mờ (cipher text) và ngược lại. Đây là một phương pháp hỗ trợ rất tốt cho trong việc
chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hoá
sẽ khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc được đối với
bất kỳ ai cố tình muốn lấy thông tin đó.
Như chúng ta đã biết, Internet hình thành và phát triển từ yêu cầu của chính phủ Mỹ nhằm
phục vụ cho mục đích quân sự. Khi chúng ta tham gia trao đổi thông tin, thì Internet là môi
trường không an toàn, đầy rủi ro và nguy hiểm, không có gì đảm bảo rằng thông tin mà chúng
ta truyền đi không bị đọc trộm trên đường truyền. Do đó, mã hoá được áp dụng như một biện
pháp nhằm giúp chúng ta tự bảo vệ chính mình cũng như những thông tin mà chúng ta gửi đi.
Bên cạnh đó, mã hoá còn có những ứng dụng khác như là bảo đảm tính toàn vẹn của dữ liệu.
2. Hệ thống mã hóa (cryptosystem)
Hệ thống mã hóa (cryptosystem) là một bộ năm (P, C, K, E, D) thỏa mãn điều kiện sau:
• Tập nguồn P là tập hữu hạn tất cả các mẫu tin nguồn cần mã hóa có thể có
• Tập đích C là tập hữu hạn tất cả các mẫu tin có sau khi mã hóa
• Tập khóa K là tập hữu hạn các khóa có thể được sử dụng
• E và D lần lượt là tập luật mã hóa và giải mã.Với mỗi khóa k Є K, tồn tại luật mã hóa e k Є E
và luật giải mã dk Є D tương ứng. Luật mã hóa ek : P → C và luật giải mã ek : C → P là hai ánh
xạ thỏa mãn dk(ek(x)) = x, ∀ x Є P

Hình 1 : Hệ thống mã hóa thông tin

Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục
tiêu sau:

a. Confidentiality (Tính bí mật): Đảm bảo dữ liệu được truyền đi một cách an toàn và không
thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu gốc ban đầu.
Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu.
b. Authentication (Tính xác thực): Giúp cho người nhận dữ liệu xác định được chắc chắn dữ
liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả mạo không thể có khả năng để giả dạng một
người khác hay nói cách khác không thể mạo danh để gửi dữ liệu. Người nhận có khả năng
kiểm tra nguồn gốc thông tin mà họ nhận được.
c. Integrity (Tính toàn vẹn): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu không
bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban
đầu băng dữ liệu giả mạo
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 4 :-


d. Non-repudation (Tính không thể chối bỏ): Người gửi hay người nhận không thể chối bỏ
sau khi đã gửi hoặc nhận thông tin.
3. Độ an toàn của thuật toán
Nguyên tắc đầu tiên trong mã hoá là “Thuật toán nào cũng có thể bị phá vỡ”. Các thuật toán
khác nhau cung cấp mức độ an toàn khác nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng.
Tại một thời điểm, độ an toàn của một thuật toán phụ thuộc:
- Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán lớn hơn giá trị của thông tin đã mã
hóa thuật toán thì thuật toán đó tạm thời được coi là an toàn.
- Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá lâu thì thuật toán đó tạm thời
được coi là an toàn.
- Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá lơn so với lượng dữ liệu đã được
mã hoá thì thuật toán đó tạm thời được coi là an toàn
4. Khái niệm về chìa khoá
Password: là một hay nhiều từ mà người dùng phải biết để được cấp quyền truy cập.
Trong thực tế, mật khẩu do người dùng tạo ra thường không đủ độ an toàn để được dùng trực
tiếp trong thuật toán. Vì vậy, trong bất cứ hệ thống mã hóa dữ liệu nghiêm túc nào cũng phải

có bước chuyển đổi mật khẩu ban đầu thành chìa khóa có độ an toàn thích hợp. Bước tạo chìa
khóa này thường được gọi là key derivation, key stretching hay key initialization.
Key Derivation Function: là một hàm hash (sẽ giải thích rõ hơn ở phần sau) được thiết kế sao
cho chìa an toàn hơn đối với tấn công kiểu brute-force hay cổ điển. Hàm này được thực hiện
lại nhiều lần trên mật khẩu ban đầu cùng với một số ngẫu nhiên để tạo ra một chìa khóa có độ
an toàn cao hơn. Số ngẫu nhiên này gọi là salt, còn số lần lặp lại là iteration.
Ví dụ một mật khẩu là "pandoras B0x", cùng với salt là "230391827", đi qua hàm hash SHA-1
1000 lần cho kết quả là một chìa khóa có độ dài 160 bit như sau:
3BD454A72E0E7CD6959DE0580E3C19F51601C359 (thể hiện dưới dạng số thập lục phân).
Keylength (Keysize): Độ dài (hay độ lớn) của chìa khóa. Nói một chìa khóa có độ dài 128 bit
có nghĩa chìa đó là một số nhị phân có độ dài 128 chữ số. Một thuật toán có chìa khóa càng dài
thì càng có nhiều khả năng chống lại tấn công kiểu brute-force.
Brute-force attack (exhaustive key search): phương pháp tấn công bằng cách thử tất cả những
chìa khóa có thể có. Đây là phương pháp tấn công thô sơ nhất và cũng khó khăn nhất. Theo lý
thuyết, tất cả các thuật toán hiện đại đều có thể bị đánh bại bởi brute-force nhưng trong thực
tiễn việc này chỉ có thể thực hiện được trong thời gian dài. Vì thế có thể coi một thuật toán là
an toàn nếu như không còn cách nào khác để tấn công nó dễ hơn là brute-force. Ngoài ra để
chống lại tấn công này, chìa khóa bị mật được thay đổi một cách thường xuyên hơn.

5. Phân loại các thuật toán mã hoá
Có rất nhiều các thuật toán mã hoá khác nhau. Từ những thuật toán được công khai để mọi
người cùng sử dụng và áp dụng như là một chuẩn chung cho việc mã hoá dữ liệu; đến những
thuật toán mã hoá không được công bố. Có thể phân loại các thuật toán mã hoá như sau:
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 5 :-


Phân loại theo các phương pháp:
- Mã hoá cổ điển (Classical cryptography)
- Mã hoá đối xứng (Symetric cryptography)

- Mã hoá bất đối xứng(Asymetric cryptography)
- Hàm băm (Hash function)
Phân loại theo số lượng khoá:
- Mã hoá khoá bí mật (Private-key Cryptography)
- Mã hoá khoá công khai (Public-key Cryptography)
II. Các phương pháp mã hóa

1. Mã hóa cổ điển
Xuất hiện trong lịch sử, thuật toán không dùng khóa, đơn giản và dễ hiểu. Là phương pháp
mà từng kí tự (hay từng nhóm kí tự) trong Plaintext được thay thế bằng một kí tự (hay một
nhóm kí tự) khác tạo ra Ciphertext. Bên nhận chỉ việc đảo ngược lại trình tự thay thế trên
Ciphertext để có được Plaintext ban đầu.
Những từ chính các phương pháp mã hoá này đã giúp chúng ta tiếp cận với các thuật toán mã
hoá đối xứng được sử dụng ngày nay. Trong mã hoá cổ điển có 2 phương pháp nổi bật đó là:
- Mã hoá thay thế (Substitution Cipher): Là phương pháp mà từng kí tự (hay từng nhóm kí tự)
trong bản rõ (Plaintext) được thay thế bằng một kí tự (hay một nhóm kí tự) khác để tạo ra bản
mờ (Ciphertext). Bên nhận chỉ cần đảo ngược trình tự thay thế trên Ciphertext để có được
Plaintext ban đầu.

Hình 2 : Bảng thay thế kí tự

Ví dụ : Giả sử tôi xây dựng một bảng thay thế các kí tự như trên và bạn cũng có bảng thay thế
này. Khi tôi muốn truyền thông tin cho bạn, chẳng hạn tôi gửi cho bạn một dòng văn bản như
sau : CABBAC, thì dựa vào bảng thay thế kí tự mà tôi và bạn đã xây dựng tôi chuyển thành
như sau : FEDDEF. Sau đó tôi gửi tới cho bạn, khi bạn nhận được thông tin như trên, vì bạn
đã có bảng thay thế bạn chỉ việc thay thế ngược lại và bạn sẽ có được thông tin ban đầu mà tôi
muốn gửi cho bạn.
- Mã hoá hoán vị (Transposition Cipher) hay còn gọi là mã hóa dịch chuyển: Nếu như trong
phương pháp mã hoá thay thế, các kí tự trong Plaintext được thay thế hoàn toàn bằng các kí tự
trong Ciphertext, thì trong phương pháp mã hoá hoán vị, các kí tự trong Plaintext vẫn được giữ

nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra Ciphertext. Tức là các kí tự trong Plaintext
hoàn toàn không bị thay đổi bằng kí tự khác.
Ngoài ra còn một số phương pháp : Phương pháp Affine, Vigenere, Hill ...

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 6 :-


2. Mã hoá đối xứng
Ở phần trên, chúng ta đã tìm hiểu về mã hoá cổ điển, trong đó có nói rằng mã hoá cổ điển
không dùng khoá. Nhưng trên thực nếu chúng ta phân tích một cách tổng quát, chúng ta sẽ
thấy được như sau:
- Mã hoá cổ điển có sử dụng khoá. Bằng chứng là trong phương pháp thay thế thì khoá
chính là phép dịch ký tự. Trong phương pháp mã hoá hoán vị thì khóa nằm ở số hàng hay số
cột mà chúng ta qui định. Khoá này có thể được thay đổi tuỳ theo mục đích mã hoá của chúng
ta, nhưng nó phải nằm trong một phạm vi cho phép nào đó.
- Để 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ới nhau về
cơ chế mã hoá cũng như giải mã. Nếu như không có công việc này thì hai bên sẽ không thể
làm việc được với nhau.
Mã hoá đối xứng còn có một số tên gọi khác như Secret Key Cryptography (hay Private
Key Cryptography), sử dụng cùng một khoá cho cả hai quá trình mã hoá và giải mã.
Quá trình thực hiện như sau:
Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, 2 bên gửi và nhận phải thoả
thuận về khoá dùng chung cho quá trình mã hoá và giải mã. Sau đó, bên gửi sẽ mã hoá bản rõ
(Plaintext) bằng cách sử dụng khoá bí mật này và gửi thông điệp đã mã hoá cho bên nhận. Bên
nhận sau khi nhận được thông điệp đã mã hoá sẽ sử dụng chính khoá bí mật mà hai bên thoả
thuận để giải mã và lấy lại bản rõ (Plaintext).

Hình 3 : Trao đổi thông tin giữa bên gửi và bên nhận sử dụng phương pháp mã hoá đối xứng


Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khoá.
Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có thể tiến hành một
cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí
mật.
Mã hoá đối xứng có thể được phân thành 02 loại:

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 7 :-


- Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm bits này được gọi với
một cái tên khác là khối (Block) và thuật toán được áp dụng gọi là Block Cipher. Theo đó,
từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ
dài. Đối với các thuật toán ngày nay thì kích thước chung của một Block là 64 bits.
- Loại thứ hai tác động lên bản rõ theo từng bit một. Các thuật toán áp dụng được gọi là
Stream Cipher. Theo đó, dữ liệu của văn bản được mã hoá từng bit một. Các thuật toán mã hoá
dòng này có tốc độ nhanh hơn các thuật toán mã hoá khối và nó thường được áp dụng khi
lượng dữ liệu cần mã hoá chưa biết trước.

Hình 4 : Một số thuật toán nổi tiếng trong mã hoá đối xứng

Phương thức mật mã đối xứng được thực hiện nhanh hơn rất nhiều so với quá trình sử
dụng mật mã bất đối xứng. Với tốc độ nhanh nên thuật toán này được thiết kế chỉ một key
trong quá trình mã hoá và giải mã dữ liệu.
Tuy nhiên bạn có thể sử dụng một giải pháp thông minh hơn đó là Public Key
Infrastructure (PKI) giải pháp được sử dụng kết hợp với mật mã đối xứng trong quá trình
truyền thông tin keys. Việc truyền thông tin key bằng việc sử dụng một mã hoá để truyền với
sử dụng một phiên truyền thông tin duy nhất. Hiểu, sử dụng và triển khai sử dụng PKI không
đơn giản và có nhiều giải pháp của nhiều nhà sản xuất khác nhau.
3. Mật mã bất đối xứng

Ý tưởng về hệ thống mã hóa khóa công cộng được Martin Hellman, Ralph Merkle và
Whitfield Diffie tại Đại Học Stanford giới thiệu vào năm 1976. Sau đó, phương pháp DiffieHellman của Martin Hellman và Whitfield Diffie được công bố. Năm 1977 nhóm tác giả
Ronald Rivest, Adi Shamir và Leonard Adleman đã công bố phương pháp RSA, phương pháp
mã khóa công khai nổi tiếng và được sử dụng trong các ứng dụng mã hóa và bảo vệ thông tin.
Khóa 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ải thay
thế khóa riêng (đối xứng). Cả 2 cùng tồn tai, phát triển và bổ sung cho nhau
Khóa công khai ( hai khóa hay bất đối xứng) bao gồm việc sử dụng 2 khóa : Khóa công khai
và khóa riêng
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 8 :-


- Bên gửi tạo ra một khoá bí mật dùng để mã hoá dữ liệu. Khoá này còn được gọi là Session Key
- Sau đó, Session Key này lại được mã hoá bằng khoá công khai của bên nhận dữ liệu.
- Tiếp theo dữ liệu mã hoá cùng với Session Key đã mã hoá được gửi đi tới bên nhận.
- Lúc này bên nhận dùng khoá riêng để giải mã Session Key và có được Session Key ban đầu.
- Dùng Session Key sau khi giải mã để giải mã dữ liệu.
Là không đối xứng vì những người mã hóa và kiểm chứng chữ ký không thể giải mã và tạo chữ


Hình 5 : Sơ đồ mã hóa công khai

Mật mã bất đối xứng hoạt động chậm hơn phương thức mật mã đối xứng, không phải nó
mã hoá một khối lượng dữ liệu lớn. Nó thường đước sử dụng để bảo mật quá trình truyền key
của mật mã đối xứng. Nó cung cấp bảo mật cho quá trình truyền thông tin bằng các dịch vụ:
Authentication, Integrity, Protection, và nonrepudiation.
Phương thức mật mã bất đối xứng sử dụng: RSA, Diffie-Hellman, ECC, El Gamal,...
4. Hashing – Hàm Băm
Hashing là một phương thức mật mã nhưng nó không phải là một thuật toán mã hoá. Đúng như
vậy, hashing chỉ sử dụng một chứng chỉ số duy nhất được biết đến với tên như "hash value – giá

trị hash", "hash – băm", Message Authentication Code (MAC), fingerprint – vân tay, hay một
đoạn message. Dữ liệu đầu vào của bạn có thể là một file, một ổ đĩa một quá trình truyền thông tin
trên mạng, hay một bức thư điện tử. Thông số hash value được sử dụng để phát hiện khi có sự
thay đổi của tài nguyên. Nói cách khác, hashing sử dụng nó để phát hiện ra dữ liệu có toàn vẹn
trong quá trình lưu trữ hay trong khi truyền hay không.
Ví dụ, thông số hash value được tính toán để so sánh với thông số hash value được tạo ra trước
đó một tuần. Nếu hai thông số giống nhau thì dữ liệu chưa có sự thay đổi. Nếu hai thông số có sự

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 9 :-


khác nhau, thì dữ liệu đã bị thay đổi. Thông số MAC value được tính toán bởi người gửi (sender)
và người nhận (receive) với cùng một thuật toán.
Không như các phương thức mật mã khác, chúng sẽ làm thay đổi dữ liệu thành một dạng mật
mã, quá trình hashing sử dụng một thông số hash value và không thay đổi dữ liệu ban đầu. Bởi vì
các tính năng đặc biệt, hashing có thể sử dụng để bảo vệ và kiểm tra tính toàn vẹn của dữ liệu. Nó
cũng có khả năng sử dụng để kiểm tra khi có một tiến trình copy được thực hiện và đảm bảo tính
chính xác của dữ liệu khi chúng được copy.
Ví dụ, khi một ổ cứng được tạo ra một bản copy, một quá trình hash được thực hiện trên ổ đĩa
trước khi quá trình nhân đôi được thực hiện. Nếu hai thông số hash của ổ cứng mới được tạo ra và
thông số hash của ổ đĩa ban đầu thì quá trình nhân đôi dữ liệu được thực hiện chính xác và đảm
bảo dữ liệu không có sự thay đổi mất mát trong quá trình nhân bản. Việc hashing sử dụng để đảm
bảo dữ liệu được nguyên bản giúp dữ liệu lưu ở dạng kỹ thuật số sẽ luôn dữ được nguyên bản sau
vô số lần copy – và điều này không thể thực hiện khi lưu dữ liệu các dạng khác – ví như bạn lưu
thông tin âm thanh bằng băng từ sẽ bị biến dạng sau nhiều lần copy.
Ví dụ, Message Digest 5 (MD5) là một thuật toán hash với 128-bit hash. Điều này có nghĩa
không có vấn đề với dữ liệu đầu vào và dữ liệu đầu ra sau quá trình hash bởi nó luôn luôn thêm
vào 128 bits. Sức mạnh của quá trình hashing là nó được thực hiện một chiều và không thể có
phương thức nào có thể thực hiện ngược lại được để converts thông số hash thành dữ liệu ban đầu.

Nếu một vài người có được các thông số hash của bạn, họ không thể lấy được dữ liệu ban đầu.
Tuy nhiên đó không phải là phương thức mật mã không thể tấn công. Hashs không thể thực hiện
ngược lại, bởi đó là một giải pháp bảo mật, có nghĩa không có công cụ nào có thể chuyển ngược
lại một password được hash thành một password nguyên bản chưa được hash. Tuy nhiên một
thuật toán nào cũng có những bất cập riêng, bằng việc sử dụng các phần mềm, password crackers
chúng có thể phát hiện ra đoạn mã thêm vào dữ liệu ban đầu và chỉ cần xoá đoạn hash value đi là
có thể truy cập bình thường. Dữ liệu Account thường không được mã hoá, và dữ liệu password
thường được hash do đó hầu hết các công cụ crack password chỉ có thể xoá password đã được đặt
cho user đó mà không thể view password đó.
Thuật toán hashing thường được sử dụng:SHA-1, MD5, MD4…..

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 10 :-


IV. Minh họa một số thuật toán mã hóa dữ liệu
a.
Phương pháp mã hóa thay thế : CEASAR CIPHER
Phương pháp này được Ceasar xây dựng trong cuộc chiến Gallic Wars, thay thế từng kí tự
trong Plaintext bằng kí tự đứng thứ 3 sau nó.Điều này tương được với phép dịch 3 vị trí. Xem
hình minh họa dưới đây :

Hình 6 : Vòng tròn Ceasar

Như các bạn thấy trên, chữ A sẽ được thay thế bằng chữ D, B thay bằng E v...v
Với Ceasar, ông ta chỉ áp dụng phép dịch 3 vị trí như trên hình minh họa. Nhưng sau này khi
áp dụng nó người ta sử dụng các phép dịch khác lớn hơn. Nhưng như các bạn thấy đối với
bảng chữ cái tiếng Anh thì từ A -> Z có 26 chữ cái, do đó điểm yếu của phương pháp này nằm
ở chỗ phạm vi của phép dịch chỉ được phép nằm trong khoảng từ 0 – 25. Ví dụ nếu ta sử dụng
phép dịch 26 thì sẽ tương đương với phép dịch 0. Dựa vào phương pháp này người ta đã xậy

dựng nên công thức cho Ceasar Cipher như sau:
a) Đánh số thứ tự cho từng kí tự trong bảng chữ cái :
0
A
13
N

1
B
14
O

2
C
15
P

3
D
16
Q

4
E
17
R

5
F
18

S

6
G
19
T

7
H
20
U

8
I
21
V

9
J
22
W

10
K
23
X

11
L
24

Y

12
M
25
Z

b) Công thức cho Ceasar Cipher :
C = E(P) = (P + K) mod (26)
P = D(C) = (C – K) mod (26)
trong đó P, C : số thứ tự của Plaintext và Ciphertext trong bảng trên. K là phép dịch.
Ví dụ : Tôi có Plaintext là : HOW. Tôi mã hóa nó sử dụng phép dịch K = 5. Vậy tôi áp dụng
công thức trên và có được như sau: P = HOW (7,14,22)  C = MTB (12,19,1).
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 11 :-


c. Chương trình minh họa

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 12 :-


b. Thuật toán mã hóa đối xứng DES
a. Lịch sử ra đời
Khoảng những năm 1970, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên cho chuẩn mã
hóa DES với phương pháp mã hóa Feistel Cipher. Vào năm 1976 Cơ quan bảo mật quốc gia
Hoa Kỳ (NSA) đã công nhận DES dựa trên phương pháp Feistel là chuẩn mã hóa dữ liệu.
Kích thức khóa của DES ban đầu là 128 nhưng tại bản công bố FIPS kích thước được rút
xuống 56 bit để tăng tốc độ xử lý và đưa ra các tiêu chuẩn thiết kệ một chuẩn mã hóa dữ liệu.

b. Nội dung phương pháp mã hóa DES
DES thực hiện mã hóa dữ liệu qua 16 vòng lặp mã hóa, mỗi vòng sử dụng một khóa chu
kỳ 48bit được tạo ra từ khóa ban đầu có độ dài 56bit. DES sử dụng 8 bảng hằng số S-box để
thao tác
Cấu tạo một vòng của DES
Sử dụng hai nửa 32 bít trái và 32 bít phải.Nửa phải của vò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ên nử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:
Li = Ri–1
Ri = Li–1 xor F(Ri–1, Ki)
Ở đâ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ới
khoá con 48 bít. Sau đó chia thành 8 cụm 6 bít và cho qua 8 S-box để nhận được kết
quả 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.

Hình 7 : Cấu tạo một vòng của DES

Các hộp thế S-box
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ép thế,
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 16 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
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 13 :-


ứ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ành có 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ít Việ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 DES
o 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ả

Hình 8 : Qúa trình sinh khóa con trong DES

c. Quy trình mã hóa DES
Qúa trình mã hóa của DES có thể tóm tắt như sau: Biểu diễn thông tin nguồn x Є P bằng
dãy 64 bit, khóa k có 56 bit.Thực hiện mã hóa theo 3 giai đoạn:
- Bước 1 : Tạo dãy 64 bit xo bằng cách hoán vị x theo hoán vị IP (Initial Permutation).
Biểu diễn xo = IP(x) = LoRo, Lo gồm 32 bit bên trái xo, Ro gồm 32 bit bên phải của xo

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 14 :-


Hình 9 : Biểu diễn dãy 64bit x thành 2 thành phần L và R

Ví dụ : IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)
- Bước 2 : Thực hiện 16 vòng lặp từ 64 bit thu được và 56 bit của khóa k (chỉ sử dụng
48 bit của khóa k trong mỗi vòng lặp ). 64 bit kết quả thu được qua mỗi vòng lặp sẽ
là đầu vào cho vòng lặp sau. Các cặp từ 32 bit Li, Ri với (1 ≤ i ≤ 16) được xác định

theo qui tắc sau :
Li= Ri-1
Ri = Li-1 f (Ri-1 ,Ki)
với biểu diễn phép XOR trên dãy 2 bít, K1, K2, ......., K16 là các dãy 48bit phát sinh
từ khóa K cho trước ( Trên thực tế, mỗi khóa Ki được phát sinh bằng cách hoán vị
các bit trong khóa K cho trước).
- Bước 3. Áp dụng hoán vị ngược IP-1 với dãy bit R16L16 , thu được từ y gồm 64 bit.
Như vậy, y = IP-1 ( R16L16 )
Hàm f được sử dụng ở bước 2 là hàm gồm hai tham số: Tham số thứ nhất A là
một dãy 32 bit, tham số thứ hai J là một dãy 48 bit. Kết quả của hàm f là một dãy 32 bit.
Các bước xử lý của hàm f (A,J) như sau:
Tham số thứ nhất A (32 bit) được mở rộng thành dãy 48 bit bằng hàm mộ rộng E.
E(A) là một dãy 48 bit được phát sinh từ A bằng cách hoán vị theo một thứ tự nhất định
32 bit của A, trong đó 16 bit của A được lặp lại hai lần trong E (A)

Hình 10 :Qui trình phát sinh dãy LiRi từ dãy Li-1Ri-1 và khóa Ki

Thực hiện phép XOR cho hai dãy 48 bit E(A) và J, ta thu được một dãy 48bit B. Biểu
diễn B thành từng nhóm 6 bit như sau: B=B1B2B3B4B5B6B7B8
Sử dụng 8 ma trận S1,S2,....S8, với mỗi ma trận Si có kích thước 4x16 và mỗi dòng của ma trận
nhận đu 16 giá trị từ 0 đến 15. Xét dãy gồm 6 bit Bj = b1b2b3b4b5b6 , Sj (Bj) được xác định
bằng giá trị của phần tử tại dòng r cột c của Sj trong đó, chỉ số dòng r có biểu diễn nhị phân
b1b6 chi số cột c có biểu diễn nhị phân b2b3b4b5. Bằng cách này, ta xác định được các dãy 4 bít
Cj = Sj(Bj), 1 ≤ j ≤ 8
Tập hợp các dãy 4 bit Cj lại, ta có được dãy 32 bit C = C1C2C3C4C5C6C7C8 . Dãy 32 bit thu
được bằng cách hoán vị C theo một qui luật P nhất định chính là kết quả của hàm F(A,J)

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 15 :-



Hình 11 : Sơ đồ thuật toán mã hóa Data Encryption Standard (DES)

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 16 :-


d. Chương trình mình họa

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 17 :-


3. Thuật toán mã hóa đối xứng AES (Rijndael)
a. Lịch sử ra đời
Với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý hiện nay,
phương pháp mã hóa chuẩn (DES) trở nên không an toàn trong bảo mật thông tin.Do đó, Viện
Tiêu chuẩn và Công nghệ Hoa Kỳ ( NIST) đã quyết định chọn một chuẩn mã hóa mới với độ
an toàn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của chính phủ Hoa Kỳ cũng như
trong ứng dụng dân sự. Thuật toán Rijndael do Vincent Rijmen và Joan Deaman đã được
chính thức chọn trở thành chuẩn mã hóa nâng cao AES ( Advanced Encryption Standard ) từ
ngày 02-10-2000.
Phương pháp Rijndael là phương pháp mã hóa theo khối ( block cipher) có kích thước khối và
mã khóa thay đổi linh hoạt với các giá trị 128, 192 hay 256 bit. Phương pháp này thích hợp
ứng dụng trên nhiều hệ thống khác nhau từ các thẻ thông minh cho đến máy tính cá nhân.
b. Đặc trưng của thuật toán AES
Có 128/192/256 bit khóa và 128 bit khối dữ liệu
Thao tác trên cả khối vòng lặp
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ạng thái được xử lý qua
các vòng mã hóa và giải mã
Khóa mở rộng thành mảng gồm 44 từ 32 bit
Có tùy chọn 9/11/13 vòng, trong đó mỗi vòng bao gồm:
- Phép thế byte ( dùng một S-box cho 1 byte)
- Dịch hàng ( hoán vị byte giữa nhóm/cột)
- Trộn cột ( sử dụng nhân ma trận của các cột
- Cộng khóa vòng ( XOR trang thái dữ liệu với khóa vòng).
- 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ả
c. Quy trình mã hóa Rijndael
Qui trình mã hóa Rijndael gồm 4 phép biến đổi chính
1. AddRoundKey – cộng mã khóa của chu kỳ vào trạng thái hiện hành,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 12 : Mô hình mô tả bước AddRoundKey

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 18 :-


2. SubBytes – đây là quá trình thay thế trong đó mỗi byte sẽ được thay thế bằng một
byte khác theo bảng thế S-box

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

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


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

4. 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 15 : 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
d. Sơ đồ mã hóa

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 19 :-


Hình 16 : Sơ đồ mã hóa và giải mã thuật toán AES

e. Chương trình minh họa thuật toán AES

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 20 :-


4. Thuật toán mã hóa bất đối xứng RAS
a. Khái quát sơ lược thuật toán RSA
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai. Đây là thuật toán đầu
tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự
tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng. RSA đang được
sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ
dài khóa đủ lớn.
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay

khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã.
Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông
tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng.
Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân mới có thể
giải mã được.
Một ví dụ trực quan: Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất
Alice có thể đọc được. Để làm được điều này, Alice gửi cho Bob một chiếc hộp có khóa đã mở
và giữ lại chìa khóa. Bob nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa
lại (lúc này ngay cả Bob cũng không thể đọc lại hay sửa thông tin trong thư được nữa). Sau đó
Bob gửi chiếc hộp lại cho Alice. Alice mở hộp với chìa khóa của mình và đọc thông tin trong
thư. Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa khóa
chính là khóa bí mật.
b. Quy trình mã hóa RSA
Khởi tạo khóa
Mỗi người sử dụng một cặp khóa công khai – riêng như sau
oChọn 2 số nguyên tố lớn p và q.
o Tính tích n = p*q. Sau đó tính φ (n) = (p-1)(q-1).
o Tìm số d sao cho d và φ (n) là nguyên tố cùng nhau (d, φ (n)) = 1.
oTìm số e thõa mãn d*e = =1 (Mod n)
Khi đó khóa công khai là cặp (e,n) và khóa mật là cặp số (d,e).
Ví dụ
1. Chọn các số nguyên tố: p=17 & q=11
2. Tính n = pq, n = 17×11=187
3. Tính Ф(n)=(p–1)(q-1)=16×10=160
4. Chọn e : gcd(e,160)=1; Lấy e=7
5. Xác định d: de=1 mod 160 và d < 160
Giá trị cần tìm là d=23, vì 23×7=161= 10×160+1
6. In khoá công khai KU={7,187}
7. Giữ khoá riêng bí mật KR={23,17,11}


GVHD : Thầy Nguyễn Quang Ánh
-: Trang 21 :-


c. Sơ đồ thuật toán

d. Quy trình mã hóa
Chương trình : Bản gốc M (MĐầu vào : Data_in
Đầu ra : Data_out
- B1: Chuyển ‘e’ thành số nhị phân và lưu trong ‘bit_s’
- B2 : Đặt chiều dài của số nhị phân đã chuyển đổi trong ‘length
- B3 : c ← 0, d ← 0, i ← lengh – 1
- B4 : c ← c*2
- B5 : d ← mod ( d*d,n )
- B6 : Nếu bits(i) = 1
{ c = c +1 ;
d = fmode (data_in * d,n);
}
- B7 : i ← i-1;
- B8 : Nếu i != 1 thì quay lại bước 4
- B9 : Data_out = d
- B10 : Trả về data_out
e. Chương trình minh họa

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 22 :-


5. Thuật toán MD5

a. Mô tả thuật toán
Thuậ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.
b. Quy trình mã hóa thuật toán MD5
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 module 512. Nghĩa là thông điệp được mở rộng sao
cho 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 được
thực hiện như sau: một bit ‘1’ được thêm vào sau thông điệp, sau đó các bit ‘0’ được
thêm vào để có một độ dài đồng dư với 448 module 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êm
và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ởi
tạo theo những giá trị hex sau :
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=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ày
nhận giá trị đầu vào là 3 từ 32 bit và tạo tạo ra một word 32 bit.
Bước 5: Thông điệp rút gọn = A||B||C||D.
Mã số thông điệp được tạo ra là A,B,C,D. Nghĩa là chúng ta bắt đầu từ byte thấp của
A, kết thúc với byte cao của D.
c. Sơ đồ thuật toán

Hình 17 :Sơ đồ thuật toán MD5

GVHD : Thầy Nguyễn Quang Ánh

-: Trang 23 :-


d. Chương trình minh họa

GVHD : Thầy Nguyễn Quang Ánh
-: Trang 24 :-


VI. Ứng dụng các thuật toán mã hóa trong thương mại điện tử
Với sự phát triển của mạng Internet hiện nay, các doanh nghiệp nhanh chóng nhận thấy lợi
ích của việc sử dụng mạng Internet để mở rộng thêm mạng doanh nghiệp bao gồm cả các đối
tác, nhà cung cấp và nhất là thông qua Internet, các doanh nghiệp có thể cung cấp các dịch vụ
của mình đến với khách hàng thông qua các ứng dụng web.
Tuy nhiên, với việc mở rộng mạng doanh nghiệp đến nhiều đối tượng, doanh nghiệp bắt
buộc phải cung cấp dữ liệu thông tin của mình cho các đối tượng đó. Do vậy, vấn đề đặt ra ở
đây là khả năng đảm bảo an ninh mạng là một trong những yếu tố sống còn cho một doanh
nghiệp khi áp dụng mô hình thương mại điện tử. An ninh mạng bao gồm rất nhiều các khía
cạnh khác nhau. Một trong những khía cạnh được quan tâm nhất khi xem xét một hệ thống an
ninh mạng là giải pháp xác thực (Authentication) người dùng. Xác thực là một quá trình mà
đảm bảo cho một thực thể rằng phía đầu bên kia của kết nối đúng là đối tượng mà thực thể đó
cần giao tiếp. Trong thế giới thực, chúng ta hoàn toàn có thể nhận biết một ai đó thông qua các
đặc điểm sinh học như khuôn mặt, giọng nói hoặc thậm chí chỉ là hình dáng hay những dấu
hiệu khác. Tuy nhiên, xác thực trên mạng lại là một vấn đề hoàn toàn khác bởi vì hai người
làm việc với nhau trên mạng qua một khoảng cách lớn về địa lý, do vậy cần có những giải
pháp xác thực, mã hóa và toàn vẹn dữ liệu trên mạng. Các thuật toán mã hóa đã được ứng
dụng một cách linh hoạt và thiết yếu trong việc thiết lập kết nối, tạo ra các chữ ký điện tử, an
toàn dữ liệu .. . . đảm bảo an ninh cho việc truyền tải file cũng như giao dịch thông qua
Internet.


1. Xác thực người dùng sử dụng giao thức SSL
Với việc sử dụng giải pháp xác thực truyền thống (xác
thực bằng mật khẩu) là không an toàn, người ta cần những
giải pháp xác thực tốt hơn trong môi trường kinh doanh
hiện nay để thiết lập một kết nối an toàn. Bằng cách sử dụng
các
thuật toán mã hóa trong việc thiết lập kết nối giữa Web browser với một webserver, giao thức
xác thực truyền tin SSL (Secure Socket Layer ) được thiết kế đã đáp ứng được nhu cầu về xác
thực, mã hóa và toàn vẹn dữ liệu
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất
nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường
truyền. Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với
đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên
đường truyền. Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào,
SSL đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:
- Xác thực server: Cho phép người sử dụng xác thực được server 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ắn rằng certificate và
GVHD : Thầy Nguyễn Quang Ánh
-: Trang 25 :-


×