ATTT_1
MÃ HÓA ĐỐI XỨNG – SYMMETRIC CRYPTOGRAPHY
Một khảng định trong một hội thảo nghiên cứu về bảo mật thông tin năm 1991 chỉ ra rằng mật mã đã trở thành một trong những khía cạnh quan trong của an toàn trong giao tiếp và truyền thông. Mật mã được coi như nền tảng vững chắc cho an toàn máy tính (Computer Security).
Mật mã sử dụng kỹ thuật mã hóa thông tin để đảm bảo an toàn và bí mật cho thông tin. Mã hóa được biết đến với hai loại mã hóa cơ bản đó là mã hóa đối xứng (Symmetric Encryption) và mã hóa bất đối xứng (Asymmetric Encryption) hay được biết đến là mã hóa khóa công khai.
Trong mật mã đối xứng chúng ta cần hiểu và nắm được các hình thức mã hóa đối xứng cổ điển (Classical Symmetric Encryption). Từ đó tìm hiểu về mã hóa khối Block Cipher và mã hóa dóng - Stream Cipher. Mã hóa bất đối xứng có vai trò trong việc đảm bảo tính bí mật của trao đổi thông tin - Confidential. Những đặc điểm của mã hóa đối xứng:
- Quá trình mã hóa thông tin và giải mã thông tin sử dụng cùng một key bí mật.
- Mã hóa đối xứng chuyển đổi dữ liệu gốc –plaintext thành bản mã – ciphertext thông qua sử dụng khóa và thuật toán mã hóa. Ciphertext được chuyển về dạng gốc plaintext thông qua sử dụng thuật toán giải mã (Decryption Algorithm)
- Có hai hình thức tấn công được sử dụng để giải mã được ciphertext đó là: lợi dụng các thuộc tính của thuật toán sử dụng thông kê tần xuât của các ký tự xuất hiện trong bảng mã. Phương thức sử dụng thuật toán vét cạn (Exhausted Algorithm hay Brute-force) để giải mã thông tin.
- Mã hóa đối xứng cổ điển thường được biết đến với hai kỹ thuật thay thế (Substitution) và hoán vị (Tranposition).
- Một kỹ thuật cũng hay được sử dụng đó là dấu mã – Steganography. Ví dụ dấu virus trojan trong các file .exe….
1. Mô hình mã hóa đối xứng – Symmetric Cipher Model
- Plaintext: Dữ liệu gốc (Original Data) - P
- Secret key: Khóa bí mật – K
- Encryption Algorithms: Thuật toán mã hóa dữ liệu – E
- Ciphertext: Bản mã – C
- Decryption Algorithm: Thuật toán giải mã dữ liệu – D
Như vậy ta có thể mô hình hóa như sau:
Mã hóa
Input:
o Plaintext
Key
Output:
o Cipher
Giải mã
Input:
o Ciphertext
o Key
Output
o Plaintext
2. Các phương pháp mã hóa cồ điển
2.1. Mã thế - Substitution Cipher
Mã thế là kỹ thuật dùng một ký tự trong plaintext được thay thế bởi một ký tự hoặc một biểu tượng trong bảng mã. Kich thước của ciphertext và plaintext là bằng nhau. Có thể kể đến:
Caesar cipher
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
Ciphertext: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ Plaintext: the quick brown fox jumps over the lazy dog
Thuật toán:
En(x) = (x+n) mod 26
Dn(x)=(x-n) mod 26.
- Ngoài ra còn có các thuật toán khác như:
- Monoalphabetic cipher
- Playfair cipher
- Hill Cipher
- Polyalphabetic Cipher
- One time pad.
2.2. Mã chuyển vị
Rail Fence cipher
W . . . E . . . C . . . R . . . L . . . T . . . E . E . R . D . S . O . E . E . F . E . A . O . C . . . A . . . I . . . V . . . D . . . E . . . N . .
Plaintext is: WE ARE DISCOVERED. FLEE AT ONCE
WECRL TEERD SOEEF EAOCA IVDEN
2.3. Kỹ thuật giấu mã
Thời cổ đại đã biết sử dụng kỹ thật giấu mã và ngày nay kỹ thuật này vẫn được sử dụng thường xuyên. Việt giấu mã là việc gửi thông tin bí mật trong một thông tin không quan trọng là vỏ bọc của thông tin quan trọng cần gửi đi.
3. Modern Symmetric Cryptography
Trong mật mã đối xứng hiện đại chia ra làm hai loại:
Block Cipher và Stream Cipher. Trong đó hầu hết các thuật toán mã hóa Block cipher thường sử dụng một cấu trúc dựa trên thuật toán Feistel. Do vậy muốn hiểu rõ về block cipher đòi hỏi phải hiểu về thuật toán Feistel.
Trong hai loại mã (block/stream cipher cần phải phân biệt):
- Stream Cipher thực hiện mã hóa dữ liệu đầu vào theo thứ tứ tứng bít thông tin lần lượt.
- Block Cipher thực hiện việc mã hóa dữ liệu đầu vào theo tứng khối dữ liệu thông thường là 64 bit, 128 bít.
- Thực tế cho thấy hầu hết các quá trình mã hóa đối xứng thực hiện trong hệ thống mạng sử dụng block cipher.
3.1. Host Feistel
Feistel Cipher là một cấu trúc đối xứng được dùng để tạo nên các block cipher thường được biết đến như Feistel Network. Hầu hết các thuật toán mã hóa khối dựa trên cấu trúc Feistel. Cấu trúc Feistel có một ưu điểm nổi bật là quá trình mã hóa và giải mã được thực hiện tương tự duy chỉ có việc sử dụng khóa ngược lại thứ tự với quá trình mã hóa của việc giải mã. Feistel cipher là một mã hóa lặp thực hiện bởi 1 hàm nội tại gọi là round function.
Thuật toán
Input cho quá trình mã hóa là plaintext có độ dài la 2w bit và khóa K. Sau đó plaintext được chia ra làm 2 phần bằng nhau L0, và R0. Hai phần dữ liệu này được xử lý qua N vòng sau đó kết hợp lại với nhau tạo thành ciphertext. Tại vòng tức thời thứ i thì Li-1,Ri-1 được sinh ra từ vòng thứ i-1, cũng như khóa ki được sinh ra từ tập khóa K (Ko,..Kn). Thông thường các giá trị Ki la khác nhau.
Tại mỗi vòng i = 0,1,…, n
Li+1 = Ri;
Ri+1= Li XOR F(Li+1, Ki);
Từ đó ciphertext sẽ là: (Rn+1; Ln+1)
Quá trình giải mã thực hiện giải mã ciphertext (Rn+1, Ln+1) thực hiện ngược lại quá trình giải mã từ vòng thứ n,n-1,…, 1, 0.
Ri= Li+1;
Li=Ri+1 XOR F(Li+1, Ki) => (Lo, Ro) là plaintext (original data).
3.2. Data Encryption Standard – DES
Trước khi vào tìm hiểu về DES chúng ta nên tìm hiểu một nền tảng, hay cơ sở cho việc mã hóa an toàn quan điểm này được đưa ra bởi Shannon.
Confusion thực hiện mã hóa làm cho việc phân tích mối quan hệ giữa ciphertext và plaintext trở nên khó khăn.
Một vài ví dụ sử dụng Confusion
Shift Cipher
German Enigma (broken by Turing).
Diffusion: được đưa ra nhằm chống lại phương pháp thông kế tấn số thông qua tăng tính dư thừa (Redundancy) trong ciphertext. Diffusion làm cho kết quả các bit đầu ra phụ thuộc một cách phức tạp vào các giá trị đầu vào, nếu một bit trong của plaintext thay đổi thì ciphertext cũng thay đổi theo. Các kỹ thuật thường sử dụng Diffusion là: Giả ngẫu nhiên (permutations)
Example: x1 = 001010 ! encr. ! y1 = 101110.
x2 = 000010 ! encr. ! y2 = 001011
DES sử dụng kết hợp Confusion và Diffusion trong thực hiện mã hóa thông tin đảm bảo thông tin có khả năng bảo mật cao:
\DES – Data Encrytion Standard
3.3. Mã chuyển vị - Tranposition Cipher
Bạn đang đọc truyện trên: Truyen247.Pro