Một trong những mối quan tâm chính của bất kỳ công ty nào là việc bảo mật dữ liệu của họ. Bảo mật dữ liệu chống lại các truy nhập và thay đổi trái phép không chỉ là một vấn đề trên các mạng. Việc truyền dữ liệu giữa các máy tính hay giữa các mạng LAN với nhau có thể làm cho dữ liệu bị tấn công và dễ bị thâm nhập hơn là khi dữ liệu vẫn còn trên một máy tính đơn.
18 trang |
Chia sẻ: vietpd | Lượt xem: 1721 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Bảo mật trong vpn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 4
BẢO MẬT TRONG VPN
Một trong những mối quan tâm chính của bất kỳ công ty nào là việc bảo mật dữ liệu của họ. Bảo mật dữ liệu chống lại các truy nhập và thay đổi trái phép không chỉ là một vấn đề trên các mạng. Việc truyền dữ liệu giữa các máy tính hay giữa các mạng LAN với nhau có thể làm cho dữ liệu bị tấn công và dễ bị thâm nhập hơn là khi dữ liệu vẫn còn trên một máy tính đơn.
Bảo mật không phải là vấn đề riêng của VPN mà thực tế là mối quan tâm và thách thức của tất cả các tổ chức có nhu cầu sử dụng môi trường mạng Internet để trao đổi thông tin. Để thực hiện bảo mật cho dữ liệu trong mạng VPN người ta thực hiện hai quá trình đó là xác thực (Authentication) và mật mã (Encryption).
4.1 Quá trình xác thực
Xác thực là một phần không thể thiếu được trong kiến trúc bảo mật của một mạng VPN. Xác thực được dựa trên ba thuộc tính: Cái gì ta có (một khoá hay một card token); cái gì chúng ta biết (một mật khẩu); hay cái gì chúng ta nhận dạng (giọng nói, quét võng mạc, dấu vân tay,..). Xác thực là thuật ngữ dùng chung, nó bao gồm hai khái niệm: Xác thực nguồn gốc dữ liệu và xác thực tính toàn vẹn dữ liệu.
4.1.1 Xác thực nguồn gốc dữ liệu
a) Mật khẩu truyền thống
Thực tế cho thấy, các loại xác thực đơn giản, như số nhận dạng ID của người dùng, mật khẩu không đủ mạnh cho việc bảo mật truy cập mạng. Mật khẩu có thể bị đón bắt và giữ lấy trong suốt quá trình truyền dữ liệu của mạng. Hệ thống mật khẩu một lần là phương pháp tốt sử dụng mật khẩu truyền thống.
* Hệ thống mật khẩu một lần
Để ngăn chặn việc sử dụng trái phép, các mật khẩu bị giữ lại và ngăn không cho chúng không được dùng trở lại, bằng cách cầu một mật khẩu mới cho phiên làm việc mới.
Những hệ thống này, thì mỗi khi người dùng đăng nhập vào mạng thì luôn luôn phải chọn một mật khẩu mới cho mỗi phiên làm việc kế tiếp. Do đó để khắc phục khó khăn này bằng cách tạo ra một cách tự động một danh sách mật khẩu có thể chấp nhận được cho người dùng. Nhược điểm của các hệ thống này là khó có thể quản trị những danh sách mật khẩu cho một số lượng lớn người dùng.
b) Giao thức xác thực mật khẩu PAP
Giao thức xác thực mật khẩu PAP (Passwork Authentication Protocol) được thiết kế một các đơn giản cho một máy tính tự xác thực đến một máy tính khác khi giao thức điểm-điểm PPP được sử dụng làm giao thức truyền thông. PAP là một giao thức bắt tay hai chiều; đó là, máy tính chủ tạo kết nối gửi nhận dạng người dùng và mật khẩu kép (passwork pair) đến hệ thống đích mà nó cố gắng thiết lập một kết nối và sau đó hệ thống đích xác thực rằng máy tính đó được xác thực đúng và được chấp nhận cho việc truyền thông. Xác thực PAP có thể được dùng khi bắt đầu của kết nối PPP, cũng như trong suốt một phiên làm việc của PPP để xác thực kết nối.
Khi một kết nối PPP được thiết lập, xác thực PAP có thể có thể được diễn ra trong kết nối đó. Điểm ngang hàng gửi một nhận dnạg người dùng và mật khẩu đến bộ xác thực cho đến khi bộ xác thực chấp nhận kết nối hay kết nối bị huỷ bỏ. PAP không bảo mật bởi vì thông tin xác thực được truyền đi rõ ràng và không có khả năng bảo mật chống lại tấn công trở lại hay lặp lại quá nhiều bởi những người tấn công nhằm cố gắng dò ra mật khẩu đúng hay một cặp nhận dạng người dùng.
c) Giao thức xác thực yêu cầu bắt tay CHAP
Giao thức xác thực mật khẩu yêu cầu bắt tay CHAP (Challenge Handshake Authentication Protocol) được thiết kế cho việc sử dụng tương tự như PAP nhưng là một phương pháp bảo mật tốt hơn đối với xác thực các kết nối PPP.
Hình 4.1: Hệ thống đáp ứng thách đố người dùng
CHAP là một giao thức bắt tay ba chiều bởi vì nó bao gồm ba bước để thực hiện kiểm tra một kết nối, sau khi kết nối được khởi tạo đầu tiên hay tại bất kỳ thời điểm nào sau khi kết nối được thiết lập. Thay vì dùng một mật khẩu hay tiến trình chấp nhận giống như trong PAP, CHAP sử dụng một hàm băm một chiều (one-way hashing function).
Máy tính xác thực gửi một bản tin thách đố (challenge massage) đến máy tính ngang cấp (peer).
Máy tính ngang cấp tính toán một giá trị sử dụng một hàm băm một chiều và gửi lại cho máy tính xác thực.
Máy tính xác thực có thể đáp ứng chấp nhận nếu giá trị gửi lại tương ứng với giá trị mong muốn.
Tiến trình này có thể lặp lại tại bất kỳ thời điểm nào trong suốt quá trình kết nối để đảm bảo rằng kết nối luôn được nắm quyền và không bị suy yếu trong mội trường hợp. Máy chủ điều khiển quá trình xác thực tại CHAP.
PAP và CHAP có nhược điểm giống nhau, đó là:
Đều phụ thuộc vào một mật khẩu bí mật được lưu trữ trên máy tính của người dùng ở xa và máy tính nội bộ. Nếu bất kỳ một máy tính nào chịu sự điều khiển của một kẻ tấn công mạng và bị thay đổi mật khẩu bí mật thì không thể xác thực được.
Không thể đăng ký chỉ định những đặc quyền truy cập mạng khác nhau đến những người dùng ở xa khác nhau sử dụng cùng một máy chủ.
CHAP là một phương pháp mạnh hơn PAP cho việc xác thực người dùng quay số nhưng CHAP không thể đáp ứng những yêu cầu mang tính mở rộng mạng. Cho dù khi không có bí mật nào truyền qua mạng thì phương pháp này vẫn yêu cầu một lượng lớn các bí mật dùng chung chạy qua hàm băm, nên yêu cầu băng thông lớn nhưng hiệu suất mạng lại thấp.
d) Hệ thống điều khiển truy cập bộ điều khiển truy cập đầu cuối TACACS
TACACS (Terminal Access Controler Access Control System) là hệ thống được phát triển để không chỉ cung cấp cơ chế xác thực mà còn thực hiện chức năng: cho phép (authorization) và tính cước (accouting). TACACS được thiế kế như một hệ thống client/server mềm dẻo hơn và đặc biệt trong việc quản lý bảo mật mạng. Trung tâm hoạt động của TACACS là một máy chủ xác thực TACACS.
Máy chủ xác thực TACACS giữ các yêu cầu xác thực từ phần mềm client được cài đặt tại một gateway hay một điểm truy cập mạng. Máy chủ duy trì một cơ sở dữ liệu nhận dạng người dùng, mật khẩu, PIN và các khoá bí mật được sử dụng để được chấp nhận hay bị từ chối các yêu cầu truy cập mạng.Tất cả xác thực, cấp quyền và dữ liệu tính cước được hướng đến máy chủ trung tâm khi một người dùng truy nhập mạng.
Ưu điểm của TACACS là nó hoạt động như một máy chủ Proxy đối với những hệ thống xác thực khác. Các khả năng của Proxy làm cho việc chia sẻ dữ liệu bảo mật của VPN với ISP được dễ dàng hơn, điều này cần thiết khi một VPN là nguồn xuất.
e) Dịch vụ xác thực người dùng quay số từ xa- RADIUS
RADIUS (Remote Authentication Dial-In Use Service) cũng sử dụng kiểu client/server để chứng nhận một cách bảo mật và quản trị các kết nối mạng từ xa của các người dùng với các phiên làm việc. RADIUS giúp cho việc điều khiển truy cập dễ quản lý hơn và nó có thể hỗ trợ các kiểu xác thực người dùng khác nhau bao gồm PAP, CHAP.
Kiểu RADIUS client/server dùng một máy chủ truy cập mạng NAS để quản lý các kết nối người dùng. NAS có trách nhiệm chấp nhận các yêu cầu kết nối của người dùng, thu thập các thông tin nhận dạng người dùng, mật khẩu đồng thời chuyển thông tin này một cách bảo mật tới máy chủ RADIUS. Máy chủ RADIUS thực hiện xác thực để chấp nhận hay từ chối cũng như khi có bất kỳ dữ liệu cấu hình nào được yêu cầu để NAS cung cấp các dịch vụ đến đầu cuối người dùng. Các client RADIUS và máy chủ RADIUS truyền thông với nhau thông với nhau một cách bảo mật bằng việc sử dụng các bí mật dùng chung cho việc xác thực và mã hoá trong truyền mật khẩu người dùng.
RADIUS tạo cơ sở dữ liệu đơn và tập trung và được lưu giữ tại máy chủ RADIUS nhằm quản lý việc xác thực người dùng và các dịch vụ. Một người dùng ở xa sử dụng RADIUS client sẽ có quyền truy cập đến các dịch vụ như nhau từ bất kỳ một máy chủ nào đang truyền thông với máy chủ RADIUS.
f) Các hệ thống phần cứng cơ bản
+ Smart card
Card thông minh (Smart card) là thiết bị có kích thước giống như một thẻ tín dụng, bao gồm: một bộ vi xử lý được gắn chặt vào card và một bộ nhớ. Một thiết bị đọc tương đương cho Smart card được yêu cầu để giao tiếp với Smart Card. Smart Card có thể lưu giữ một khoá riêng của người dùng cùng với một số ứng dụng nhằm đơn giản hoá tiến trình xác thực. Một số Smart Card hiện nay gồm một bộ đồng xử lý mã hoá và giải mã làm cho việc mã hoá dữ liệu dễ dàng hơn và nhanh hơn.
Các hệ thống chứng nhận điện tử được sử dụng trong Smart Card, nó yêu cầu người dùng nhập vào một số nhận dạng cá nhân PIN để tiến hành quá trình xác thực, thường thì số PIN được lưu trên Smart Card.
+ Các thiết bị thẻ bài (Token Devices)
Các hệ thống thẻ bài thường được dựa trên các phần cứng riêng biệt dùng để hiển thị các mã nhận dạng (passcode) thay đổi mà người dùng sau đó phải nhập vào máy tính để thực hiện việc xác thực.
Cơ chế hoạt động của thẻ bài: một bộ xử lý bên trong thẻ bài lưu giữ một tập các khoá mã hoá bí mật được dùng để phát cho các mã nhận dạng một lần. Các mã nhận dạng náy chuyển đến một máy chủ bảo mật trên mạng, máy chủ này kiển tra tính hợp lệ từ đó đưa ra các quyết định cấp quyền hay không? Sau khi các mã được lập trình, không có người dùng hay nhà quản trị nào có quyền truy cập đến chúng.
Trước khi các người dùng được phép xác thực, các thết bị thẻ bài yêu cầu một PIN, sau đó sử dụng một trong ba cơ chế khác nhau để xác định người dùng là ai.
- Cơ chế đáp ứng thách đố (Challenge response): là cơ chế thông dụng nhất, theo cơ chế này thì máy chủ sẽ phát ra một con số ngẫu nhiên khi người dùng đăng nhập vào mạng. Một số thách đố xuất hiện trên màn hình của người dùng và người dùng nhập vào các con số trong thẻ bài. Thẻ bài mã hoá con số thách đố này với khoá bí mật của nó và hiển thị kết quả lên màn hình và sau đó người dùng nhập kết quả đó vào trong máy tính. Trong khi đó, máy chủ mã hoá con số thách đố với cùng một khoá và nếu như hai kết quả này phù hợp thì người dùng sẽ được phép truy cập vào mạng.
- Cơ chế sử dụng sự đồng bộ thời gian (Time Synchronization), cơ chế này thẻ hiển thị một số được mã hoá với khoá bí mật mà khoá này sẽ thay đổi sau 60 giây. Người dùng được nhắc cho con số khi cố gắng đăng nhập vào máy chủ. Do các đồnghồ trên máy chủ và thẻ được đồng bộ nên máy chủ có thẻ xác thực người dùng bằng cách giải mã con số thẻ và so sánh các kết quả.
- Cơ chế đồng bộ sự kiên (event Synchronzation); theo cơ chế này, một bộ đếm ghi lại số lần vào mạng được thực hiện bởi người dùng. Sau đó mỗi lần vào mạng, bộ đếm được cập nhật và một mã nhận dạng khác được tạo ra cho lần đăng nhập sau.
g) Hệ hống sinh trắc học
Hệ thống sinh trắc học dựa vào một số dấu vết cá nhân duy nhất để xác thực người dùng như: vân tay, giọng nói, võng mạc…Tuy nhiên hệ thống được sử dụng rộng rãi trong thực tế bởi vì giá thành đắt và các hệ thống bảo mật này thường tích hợp trong một, làm cho chúng khó khăn trong việc giao tiếp với các hệ thống khác. Hệ thống sinh trắc học chỉ phù hợp cho những nơi cần độ bảo mật cao nhất và trong một phạm vi nhỏ.
4.1.2 Xác thực tính toàn vẹn dữ liệu
Xác thực tính toàn vẹn dữ liệu (Data integrity) bao gồm hai vấn đề:
Phát hiện các bản tin bị lỗi (corrupted message): Phát hiện các lỗi bit đồng thời xác định nguyên nhân lỗi là do phương tiện truyền dẫn hoặc do thiết bị xử lý, lưu trữ. Giải pháp cho vấn đề này là sử dụng một giản lược thông điệp MD (Message Digest) cho mỗi bản tin. MD hoạt động như một dấu vân tay cho phép xác định duy nhất một bản tin.
Bảo vệ chống sửa đổi bất hợp pháp bản tin (unauthorized modification): Phát hiện ra những bản tin đã bị sửa đổi một cách bất hợp pháp trong quá trình truyền dẫn. Có hai giải pháp cho vấn đề này trên cơ sở sử dụng mật mã khoá đối xứng và mật mã khoá công cộng. Giải pháp khoá đối xứng tạo ra một mã xác thực bản tin MAC (Message Authentication Code) dựa trên một hàm giản lược thông điệp có khoá tác động (Keyed message digest function). Giải pháp khoá công cộng tạo ra một chữ ký số (digital signature) bằng cách mật mã giản lược thông điệp MD với khoá công khai của người gửi.
Giản lược thông điệp MD dựa trên hàm băm một chiều
MD là phương pháp sử dụng để phát hiện lỗi truyền dẫn, nó được thực hiện bằng các hàm băm một chiều. Các hàm băm một chiều được sử dụng để tính MD. Một hàm băm được coi là tốt nếu thoả mã các yêu cầu:
Việc tính MD đơn giản, hiệu quả cho phép tính MD của các bản tin có kích thước nhiều GB.
Không có khả năng tính ngược lại bản tin ban đầu khi biết giá trị MD của nó. Đây là lý do có tên gọi là hàm băm một chiều.
Giá trị MD phải phụ thuộc vào tất cả các bit của bản tin tương ứng. Dù chỉ một bit trong bản tin bị thay đổi, thêm vào hoặc xoá bớt thì sẽ có khoảng 50% các bit trong MD sẽ thay đổi giá trị một cách ngẫu nhiên. Hàm băm có khả năng thực hiện ánh xạ message-to-digest giả ngẫu nhiên, nghĩa là với hai bản tin gần giống hệt nhau thì mã hash của chúng lại hoàn toàn khác nhau.
Do bản chất ngẫu nhiên của hàm băm và số lượng cực lớn các giá trị hash có thể, nên hầu như không có khả năng hai bản tin phân biệt có cùng giá trị hash. Với các ứng dụng thực tế hiện nay có thể coi đầu ra của hàm băm thực hiện trên một bản tin là dấu vân tay duy nhất cho bản tin đó.
Hình 4.2: Hàm băm thông dụng MD5, SHA-1
MD có độ dài cố định hoạt động như một dấu vân tay duy nhất cho một bản tin có độ dài tuỳ ý. Với độ dài thông thường của một MD từ 128 đến 256 bit thì có thể đại diện cho 1038÷1070 giá trị vân tay khác nhau.
Có hai hàm băm thông dụng là MD5 (Message Digest #5) và SHA (Security Hash Function). MD5 do Ron Rivest (RSA Security Inc) phát minh, tính giá trị hash 128 bit (16 Byte) từ một bản tin nhị phân có độ dài tuỳ ý. SHA được phát triển bởi NIST (US National Institute of Standards and Technology) với sự cộng tác của NSA (National Security Agency). SHA-1 tính giá trị hash 160 bit (20 Byte) từ một bản tin nhị phân có độ dài tuỳ ý. Thuật toán này tương tự như MD5 nhưng an toàn hơn vì kích thước lớn hơn. Thuật toán SHA-2 với kích thước hash là 256, 384, và 512 bit đã được NIST công bố vào tháng 10 năm 2000 để thích ứng với các khoá có độ dài lớn của thuật toán mã hoá AES.
* Cấu trúc cơ bản của hàm băm một chiều MD5/SHA
Cả MD5 và SHA đều làm việc với khối dữ liệu đầu vào 512 bit. Như vậy bản tin ban đầu được phân thành số nguyên lần các khối dữ liệu này. Điều này được thực hiện bằng cách thêm một trương Length 64 bit vào cuối bản tin, sau đó chèn 0÷512 bit đệm vào trước trường Length để khối dữ liệu cuối cùng có độ dài đúng 512 bit.
Hình 4.3: Cấu trúc cơ bản của MD5/SHA
Việc xử lý theo từng khối này cho phép tính giá trị hash của các bản tin lớn theo kiểu nối tiếp.
Vector khởi tạo IV (initialization Vector) và giá trị hash:
Ngoài 512 bit khối dữ liệu đầu vào, hàm băm còn yêu cầu một vector khởi tạo IV có kích thước bằng kích thước của hash (128 bit đối với MD5, 160 bit đối với SHA-1).
Trong vòng đầu tiên, IV lấy giá trị định nghĩa trước trong các chuẩn MD5, SHA. Một giá trị hash sẽ được tính dựa trên khối 512 bit đầu vào đầu tiên. Giá trị hash này đóng vai trò IV trong vòng thứ hai. Quá trình tiếp tục với giá trị hash vòng trước là IV của vòng sau. Sau khi khối dữ liệu 512 bit cuối cùng được xử lý thì giá trị hash tính được là MD của toàn bộ bản tin.
Mã xác thực bản tin MAC (Message Authentication Code)
Lý do xây dựng mã xác thực bản tin MAC là vì bản thân MD không cung cấp bất kỳ bảo vệ nào chống lại việc thay đổi bất hợp pháp nội dung của bản tin. Khi một người nào đó thay đổi nội dung của bản tin trên đường truyền thì anh ta có thể tính lại giá trị hash MD5 hoặc SHA dựa trên nội dung của bản tin đã thay đổi đó và như vậy tại phía thu, giá trị hash vẫn hoàn toàn hợp lệ.
MAC là phương pháp bảo vệ chống sửa đổi bất hợp pháp nội dung của bản tin. MAC được thực hiện dựa trên hàm băm một chiều kết hợp với khoá bí mật.
Hình 4.4: Xác thực tính toàn vẹn dữ liệu dựa trên xác thực bản tin MAC
Để giải quyết vấn đề này, MAC sử dụng một khoá bí mật trong quá trình tính MD của bản tin thì mới đảm bảo chống lại những những thay đổi bất hợp pháp. Phía phát, nơi có khoá bí mật tạo ra một giản lược thông điệp hợp lệ (valid MD) và được gọi là mã xác thực bản tin MAC. Phía thu sử dụng khoá bí mật để sử dụng khóa bí mật để xác định tính hợp lệ của bản tin bằng cách tính lại giá trị MAC và so sánh với giá trị MAC mà phía phát truyền tới.
Thông thường giá trị MAC cuối cùng được tạo ra bằng cách cắt ngắn giá trị hash thu được bởi MD5 (128 bit) hay SHA-1 (160 bit) xuống còn 96 bit. Mặc dù việc cắt giảm này làm giảm đáng kể số các tổ hợp cần thử đối với một tấn công kiểu brute force, nhưng nó có tác dụng che dấu trạng thái bên trong của thuật toán băm và sẽ khó khăn hơn rất nhiều cho kẻ tấn công để có thể đi từ đầu ra của vòng băm thứ hai tới kết quả trung gian của vòng băm thứ nhất.
Phương pháp mã xác thực tính toàn vẹn sử dụng MAC có ưu điểm là thực hiện nhanh và hiệu quả vì việc tạo MAC dựa trên hàm băm tương đối đơn giản, do đó thường được sử dụng để xác thực các cụm dữ liệu tốc độ cao (sử dụng cho các gói tin IPSec). Nhược điểm của phương pháp này là phía thu phải biết được khoá bí mật thì mới kiểm tra được tính toàn vẹn của bản tin, dẫn đến vấn đề phải phân phối khoá một cách an toàn.
Chữ ký số (Digital Signature)
Chữ ký số là một phương pháp khác để để bảo vệ chống sửa đổi bất hợp pháp nội dung bản tin. Chữ ký số được thực hiện bằng cách mật mã giá trị hash thu được từ một hàm băm một chiều.
Giá trị hash (MD5 hoặc SHA) của bản tin được mật mã với khoá bí mật của phía phát để tạo thành chữ ký số và được truyền đi cùng với bản tin tương ứng.
Hình 4.5: Chữ ký số
Phía thu tính lại mã hash từ bản tin thu được, đồng thời giải mã chữ ký số đi kèm với bản tin. Nếu giá trị giải mã trùng khớp với giá trị hash tính được thì kết luận được tính toàn vẹn của bản tin, vì chỉ có phía phát mới có đúng khoá bí mật để mật mã chữ ký đó.
Do khoá công cộng được phân phối rộng rãi, nên bất cứ người dùng nào cũng có thể xác định tính toàn vẹn của bản tin. Phương pháp này tránh được vấn đề phân phối khoá an toàn, nhưng quá trình mật mã và giải mã sử dụng khoá bí mật/công khai thực hiện rất chậm. Vì vậy phương pháp này chỉ được sử dụng để xác thực đối tác tại mọi thời điểm ban đầu của phiên trao đổi thông tin.
4.2 Mã hoá
Mã hoá được thực hiện dựa trên hai thành phần: đó là một thuật toán và một khoá. Một thuật toán mã hoá là một chức năng toán học nối phần văn bản hay các thông tin dễ hiểu với một chuỗi các số gọi là khoá để tạo ra một văn bản mật mã khó hiểu.
Có rất nhiều thuật toán mã hoá khác nhau, có một vài thuật toán mã hoá đặc biệt không sử dụng khoá có sẵn nhưng với các thuật toán sử dụng các khoá được sử dụng nhiều hơn. Mã hoá trên một hệ thống khoá cơ bản cung cấp hai ưu điểm quan trọng đó là:
bằng việc dùng một khoá thì có thể sử dụng cùng một thuật toán để truyền thông với nhiều người, mỗi một người dùng sử dụng một khoá.
Nếu như bản tin được mã hoá bị bẻ gãy, chỉ cần chuyển một khoá mới để bắt đầu mã hoá bản tin đó lại mà không cần phải đổi một thuật toán mới để thực hiện quá trình đó
Một thuật toán mã hoá tốt phải có được các tính chất:
Bảo mật chống lại các tấn công tới cryptographic.
Khả năng mở rộng, các chiều dài khoá thây đổi.
Bất kỳ thay đổi tới văn bản lối vào mã hoá sẽ làm thay đổi lớn ở lối ra đã được mã hoá.
Không hạn chế nhập vào hay xuất ra.
Có nhiều kiểu thuật toán mã hoá khác nhau được sử dụng. Tuy nhiên, có hai kiểu thuật toán mã hoá sử dụng khoá được sử dụng phổ biến đó là: thuật toán mã hoá khoá bí mật (secret key) hay còn gọi là mã hoá đối xứng (symmetric) và thuật toán mã hoá khoá công cộng (Public key).
Số khoá mà thuật toán có thể cung cấp phụ thuộc vào số bit trong khoá.
Ví dụ, một khoá dài 8 bit cho phép có 28=256 khoá, khoá dài 40 bit cho phép có 240 khoá. Số khoá càng lớn thì khả năng một bản tin đã được mã hoá bị bẻ khoá càng thấp. Mức độ khó phụ thuộc vào chiều dài của khoá.
4.2.1 Thuật toán mã hoá khoá bí mật (hay đối xúng)
Hình 4.6: Mã hoá khoá bí mật hay đối xứng
Thuật toán đối xứng đựoc định nghĩa là một thuật toán khoá chia sẻ sử dụng để mã hoá và giải mã một bản tin. Các thuật toán mã hoá đối xứng sử dụng chung một khoá để mã hoá và giải mã bản tin, điều đó có nghĩa là cả bên gửi và bên nhận đã thoả thuận, đồng ý sử dụng cùng một khoá bí mật để mã hoá và giải mã.
Khi ta có nhiều sự trao đổi với N người khác nhau thì ta phải giữ và dấu N khoá bí mật với mỗi