Tìm Hiểu Cơ Bản về Mã Hóa: “Encryption” hay “Encrypted” Tin Nhắn / Emails v.v…

Khi chúng ta lên mạng, vào bất kỳ nơi nào nếu thấy địa chỉ bắt đầu bằng “https”, thí dụ https://www.facebook.com/ — thì tất cả những gì chúng ta thấy trên màn hình, hoặc viết gửi đi v.v… trên nguyên tắc, đều được mã hóa.

— Có nghĩa là trong quá trình chuyển đi, chuyển lại, có ai đó ăn cắp những thông tin này, họ cũng không đọc được hay “giải mã” được.

Thí dụ, khi chúng ta mua đồ trên Amazon, Hoa Kỳ, và gửi thông tin về thẻ tín dụng sang Hoa Kỳ, có kẻ nào đó ăn cắp được những thông tin này trên đường di chuyển — chúng cũng không giải mã được thông tin để đọc được thẻ tín dụng để ăn cắp tiền.

Nhìn chung, “sức mạnh” của mã hóa không phải ở phương pháp ( algorithm ) mã hóa mà ở “sức mạnh” của chìa khóa mã hóa ( encryption key ).

Chìa khóa 128-bit đã được sử dụng khá lâu và chưa ai bẻ được.

Vậy “encryption key” bảo vệ thông tin ra sao?

“Bit” là số nhị phân. Một bit chỉ có thể có một trong hai giá trị: 0 hoặc 1.

Giải thích 128-bit encryption có lẽ hơi rắc rối. Thử tìm hiểu bằng bằng chìa khóa 2-bit trước.

Một bit có hai giá trị. Tập hợp của hai bit sẽ tạo ra bốn giá trị khác nhau, vì là 2 lũy thừa 2 ( 2^2 = 4 ):

Nhị phân: 00 –> hệ số mười, thập phân, là 0
Nhị phân: 01 –> hệ số mười là 1
Nhị phân: 10 –> hệ số mườk là 2
Nhị phân: 11 –> hệ số mười là 3

“Brute-force attack” là cái kiểu tấn công giải mã Vai U Thịt Bắp, tấn công bằng “vũ lực” bên kia đạn sắt bên ta đầu chì, thì người ta sẽ:

— Sử dụng chìa khóa 00 để giải, nếu không được thì chìa khóa 01, tiếp theo là 10, sau cùng là 11.

Trong bốn chìa khóa này, sẽ có một chìa giải mã được thông tin đã được mã hóa.

Như vậy, với cái chìa khóa 2-bit, thì tỷ lệ thành công của brute-force attack là 25%. Theo cách tính:

1 / ( 2^2 ) = 1 / 4 = 25%

Thêm một thí dụ nữa. Hãy tưởng tượng, chìa khóa bây giờ là 3-bit, thì chúng ta có tổng cộng là tám ( 8 ) chìa khóa khác nhau vì:

2^3 = 2 * 2 * 2 = 8

Đây là giá trị của tám ( 8 ) chìa khóa:

000
001
010
011
100
101
110
111

Trong tám ( 8 ) chìa khóa này, chỉ có một ( 1 ) là có giá trị. Vậy xác suất thành công của brute-force attack là 12.5%:

1 / ( 2^3 ) = 1 / 8 = 12.5%

Như vậy, chìa khóa 128-bit có tổng cộng là 2^128 chìa khóa! Và trong đó chỉ có một chìa khóa là giải được!

2^128 là khoảng chừng 340,282,366,920,938,000,000,000,000,000,000,000,000 hay 3.4028237e+38!

Như vậy cái xác suất thành công của brute-force attack với chìa khóa 128-bit là:

1 / ( 2^128) = 1 / 340,282,366,920,938,000,000,000,000,000,000,000,000 = ??%

Hiện tại, 128-bit chưa bị bẻ gãy vì có quá nhiều chìa khóa để thử!

Xin lưu ý, đây chỉ là cách giải thích rất cơ bản. Không đến nơi đến chốn. Encryption trong IT là một nhánh chuyên môn dành riêng cho những bộ não toán học siêu việt!

*
* *

Chìa khóa 128-bit đã được sử dụng khá lâu và chưa ai bẻ được.

Nhưng hiện tại, người ta đã sử dụng chìa khóa 256-bit ( 128 * 2 = 256 ), và đã 1,024-bit ( 256 * 2 ).

— Và Google cũng đã sử dụng chìa khóa 2,048-bit ( 1024 * 2 ) rồi.

02/07/2018

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: