Crypto1: Hệ thống mật mã - Phần 1

thanhlong

Moderator
gemgem
Tham gia
18/03/2025
Bài viết
64
Được Like
0
Coin
2,477
Points
355
CRYPTOGRAPHIC SYSTEMS (HỆ THỐNG MẬT MÃ) – Part 1

Trong phạm vi cục bộ, để bảo đảm an toàn cho hạ tầng mạng và thiết bị đầu cuối, chúng ta có thể dùng kết hợp nhiều tính năng, như: gia cường thiết bị (device hardening), điều khiển truy nhập (AAA access control), tường lửa (firewall), và triển khai hệ thống IPS. Nhưng data sẽ được bảo vệ như thế nào khi truyền qua mạng Internet công cộng? Câu trả lời là "sử dụng kỹ thuật mật mã".

Việc truyền thông an toàn có một yêu cầu là phải đảm bảo data không bị giả mạo, không bị thay đổi và gửi từ một nguồn tin cậy có chứng minh. Thêm nữa, nếu data bị đánh cắp thì không thể giải mã.

Nhiều hệ thống mạng hiện đại đảm bảo tính xác thực (authentication) với các giao thức như HMAC; đảm bảo tính toàn vẹn (integrity) bằng các thuật toán hàm băm (hash function) như MD, SHA; đảm bảo tính bí mật của dữ liệu bằng các thuật toán mã hóa đối xứng như DES, 3DES, AES, hoặc thuật toán mã hóa bất đối xứng như RSA và PKI.

Nhằm chuẩn bị kiến thức phục vụ cho các chuyên đề về VPN tiếp theo, loạt bài viết này sẽ trình bày một cách căn bản về mật mã học, bao gồm các nội dung chính như sau:

- Cryptographic Services (Dịch vụ mật mã)

- Integrity and Authenticity (Tính xác thực và Toàn vẹn)

- Confidentiality (Mã hóa)

- Public Key Cryptography (Mật mã khóa công khai)

Các thuật ngữ sử dụng trong bài viết:

1. Cryptology: ngành khoa học làm ra và phân tích (giải) các đoạn mã bí mật

2. Cryptography: mật mã học (phát triển và sử dụng mật mã)

3. Cryptanalysis: phân tích mật mã

4. Secret codes: mã bí mật

5. Authentication: tính xác thực

6. Integrity: tính toàn vẹn

7. Confidentiality: tính bí mật

8. Nonrepudiation: tính không chối bỏ

9. Transposition: hoán vị

10. Substitution: thay thế

11. Plaintext/Cleartext: dữ liệu gốc chưa mã hóa (bản rõ)

12. Ciphertext: dữ liệu đã mã hóa (bản mã)

13. Cipher: thuật toán/phép mã hóa

14. Key: khóa

15. Shared secret key: khóa bí mật được chia sẻ trước

PART 1 – CRYPTOGRAPHIC SERVICES

Phần 1 gồm có:

- Truyền thông an toàn

- Mật mã học

- Phân tích mật mã

1.Truyền thông an toàn

148993994420150721.1.1.jpg


Nhiệm vụ của nhà quản trị mạng là đảm bảo an toàn cho hạ tầng mạng (bao gồm các thiết bị router, switch, server, host) và đảm bảo dữ liệu được truyền an toàn trong phạm vị nội bộ cũng như ra bên ngoài.

Có 3 yêu cầu sau đối với việc truyền thông an toàn:

- Authentication (tính xác thực): đảm bảo rằng dữ liệu không bị giả mạo và được gửi từ một nguồn có thể chứng minh. Ví dụ: việc sử dụng mã cá nhân PIN trong giao dịch tại ngân hàng.

148993994420150721.1.2.png


Chú ý sự khác nhau giữa “tính không chối bỏ” (nonrepudiation) với “tính xác thực”. Với dịch vụ nonrepudation, người gửi được xác định là duy nhất, kèm theo những đặc điểm riêng đính kèm theo dữ liệu và do đó không thể chối bỏ vai trò là nguồn truyền tin. Một ví dụ để phân biệt “tính xác thực” và “tính không chối bỏ” là sự trao đổi dữ liệu giữa 2 máy tính trong cùng công ty khác với sự trao đổi dữ liệu giữa một khách hàng với một e-commerce website. Trong cùng công ty, 2 máy tính khi trao đổi dữ liệu với nhau thì không cần các tham số chứng minh là nguồn truyền tin. Các bạn sẽ gặp lại tính chất nonrepudiation trong phần triển khai VPN với CA.

- Integrity (tính toàn vẹn): tương tự như chức năng checksum trong đóng gói dữ liệu, đảm bảo dữ liệu không bị thay thế và sửa đổi. Ví dụ: việc gắn sáp lên phong bì thư.

148993994420150721.1.3.png


- Confidentiality (tính bí mật): đảm bảo rằng chỉ người nhận mới có thể đọc được dữ liệu và kẻ đánh cắp thì không giải mã được. Ví dụ: phương pháp mã hóa của Julius Caesar thực với nguyên tắc là chuyển vị trí các phần tử trong bảng chữ cái.

148993994420150721.1.3.1.png


2. Mật mã học

Authentication, integrity, và confidentiality là các thành phần của mật mã học. Các thuật toán đặc biệt (còn gọi là cipher) được sử dụng để mã hóa và giải mã dữ liệu. Những phương pháp dùng để tạo ra dữ liệu được mã hóa (ciphertext) gồm có:

- Transposition (hoán vị)

- Substitution (thay thế)

- Vernam

2.1. Transposition

Khi sử dụng thuật toán hoán vị, các chữ cái không bị thay thế mà đơn giản là chúng bị sắp xếp lại. Ví dụ: dữ liệu gốc (plaintext, cleartext) là “FLANK EAST ATTACK AT DAWN” được mã hóa thành “NWAD TAKCATTA TSAE KNALF”. Trong ví dụ này, chìa khóa (key) là đảo ngược ký tự.

Một ví dụ khác là thuật toán “rail fence”. Trong ví dụ này, key=3, nghĩa là dùng 3 đường thẳng khi thực hiện mã hóa. Chúng ta đọc văn bản theo đường chéo lên xuống, như sau:

F...K...T...A...T...N.

.L.N.E.S.A.T.C.A.D.W..

..A...A...T...K...A...

148993994420150721.1.4.png


Một số thuật toán mã hóa hiện đại, như DES và 3DES vẫn kết hợp sử dụng phương pháp hoán vị.

2.2. Substitution

Ý tưởng của thuật toán là thay thế một ký tự này bằng một ký tự khác. Trong kiểu đơn giản nhất, thuật toán vẫn giữ nguyên trật tự của dữ liệu gốc.

Ví dụ 1: Caesar cipher

Với key=3, ký tự D sẽ thay thế cho ký tự A, E thay cho B …

148993994420150721.1.5.png


Thuật toán Caesar dễ bị giải mã vì toàn bộ dữ liệu được mã hóa với cùng một key shift.

Ví dụ 2: Vigenere cipher

Thuật toán này dựa trên Caesar cipher, ngoại trừ việc sử dụng các key shift khác nhau. Các shift key này được xác định nhờ shared secret key (đã thống nhất trước giữa bên truyền và nhận). Dưới đây là Vigenere Cipher Table.

148993994420150721.1.6.png


Giả sử shared secret key là: SECRETKEY. Bên truyền sẽ sử dụng key này để mã hóa
plaintext “FLANK EAST ATTACK AT DAWN”, như sau:

- Chữ F trong từ “FLANK” được mã hóa bằng ký tự X tại giao điểm của cột F và hàng S (SECRETKEY)

- L (FLANK) được mã hóa bằng P tại giao điểm của cột L và hàng E (SECRETKEY)

- A (FLANK) được mã hóa bằng C tại giao điểm của cột A và hàng C (SECRETKEY)

- N (FLANK) được mã hóa bằng E tại giao điểm của cột N và hàng R (SECRETKEY)

- K (FLANK) được mã hóa bằng O tại giao điểm của cột K và hàng E (SECRETKEY)

Và tiếp tục cho phần còn lại của dữ liệu. Khi sử dụng Vigenere cipher, nếu message dài hơn key, thì key sẽ dùng lặp lại. Ví dụ: SECRETKEYSECRETKEYSEC được sử dụng để mã hóa “FLANK EAST ATTACK AT DAWN”, như sau:

Secret key: SECRE TKEY SECRET KE YSEC

Plaintext: FLANK EAST ATTACK AT DAWN

Cipher text: XPCEO XKUR SXVRGD KX BSAP

Note: thuật toán này vẫn có thể crack.

2.3. Vernam

Gilbert Vernam là một kỹ sư làm việc tại phòng nghiên cứu AT&T Bell. Năm 1971, ông đã phát minh ra stream cipher và đồng phát minh ra thuật toán one-time pad (OTP). Về lý thuyết, OTP là thuật toán duy nhất chứng minh được là không thể crack, ngay cả với tài nguyên vô tận (do đó có thể chống lại brute-force attack). Để đạt mức độ bảo mật, tất cả những điều kiện sau phải được thỏa mãn:

– Độ dài của khóa phải đúng bằng độ dài văn bản cần mã hóa.

– Khóa chỉ được dùng một lần.

– Khóa phải là một số ngẫu nhiên thực.
 
Top Bottom