-
Internet: Mã hóa và khóa công khai
-
Xin chào, tôi là Mia Gil-Epner, tôi học chuyên ngành
Khoa học máy tính tại UC Berkeley và tôi làm việc
-
cho Bộ Quốc phòng, nơi tôi tìm cách
đảm bảo thông tin được an toàn.
-
Internet là một hệ thống mở và công khai. Tất cả chúng ta đều
gửi và nhận thông tin thông qua các đường dẫn và
-
kết nối chung. Nhưng mặc dù đó là một
hệ thống mở, chúng ta vẫn trao đổi rất nhiều
-
dữ liệu riêng tư. Những thứ như số thẻ tín dụng,
thông tin ngân hàng, mật khẩu và email.
-
Vậy tất cả những thứ riêng tư này được bảo mật như thế nào?
Mọi loại dữ liệu đều có thể được bảo mật thông qua
-
quá trình gọi là mã hóa, tức xáo trộn
hoặc biến đổi thông điệp để ẩn nội dung gốc.
-
Ngày nay, giải mã là quá trình sắp xếp lại
để có thể đọc được thông điệp đó.
-
Đây là ý tưởng cơ bản và con người đã làm việc này
hàng thế kỷ qua. Một trong những phương pháp mã hóa
-
phổ biến đầu tiên là Mật mã Caesar. Đặt theo
tên của Julius Caesar, vị tướng người La Mã
-
đã mã hóa các mệnh lệnh quân sự của mình
để đảm bảo nếu bị can thiệp, quân địch
-
cũng sẽ không đọc được những mệnh lệnh ấy.
Mật mã Caesar là một Thuật toán thay thế
-
từng chữ cái trong thông điệp gốc bằng một
chữ cái cách đó một số chữ cái nhất định
-
trong bảng chữ cái. Nếu đó là số chỉ có
người gửi và người nhận được biết, số đó gọi là
-
chìa khóa. Nó cho phép người đọc giải mã được
thông điệp bí mật. Ví dụ: Nếu thông điệp gốc là
-
"HELLO" thì khi dùng thuật toán Mật mã Caesar
với chìa khóa là 5, thông điệp được mã hóa
-
sẽ là thế này… Để giải mã thông điệp,
người nhận đơn giản sẽ dùng chìa khóa để đảo ngược
-
quá trình. Nhưng một vấn đề lớn của
Mật mã Caesar chính là ai cũng có thể dễ dàng giải mã
-
hoặc bẻ khóa thông điệp được mã hóa bằng cách thử
mọi chìa khóa khả dụng và trong bảng chữ cái tiếng Anh,
-
chỉ có 26 chữ cái, có nghĩa là
bạn sẽ chỉ cần thử tối đa 26 chìa khóa để
-
giải mã thông điệp. Ngày nay, việc thử 26 chìa khóa
khả dụng chẳng mấy khó khăn, chỉ mất tối đa
-
1 hoặc 2 giờ. Vậy hãy làm cho việc này khó hơn.
Thay vì dịch chuyển mọi chữ cái theo cùng một số,
-
hãy dịch chuyển mỗi chữ cái theo một số khác nhau.
Trong ví dụ này, chìa khóa mười chữ số cho biết số lượng
-
vị trí mỗi chữ cái liên tiếp sẽ được thay đổi
để mã hóa thông điệp dài hơn. Sẽ rất khó
-
để đoán ra chìa khóa này. Sử dụng mã hóa 10 chữ số
có thể tồn tại 10 tỷ kết quả là chìa khóa khả dụng.
-
Rõ ràng, đó là điều mà không con người nào
có thể giải mã vì sẽ mất hàng thế kỷ.
-
Nhưng một máy tính bình thường ngày nay chỉ mất
một vài giây để thử hết 10 tỷ khả năng.
-
Vậy, trong thế giới hiện đại, nơi kẻ xấu
được trang bị máy tính thay vì bút chì,
-
làm sao để mã hóa thông điệp bảo mật tới mức
việc bẻ khóa là quá khó? Giờ đây, quá khó nghĩa là
-
có quá nhiều khả năng cần tính toán trong khoảng
thời gian hợp lý. Các giao tiếp bảo mật ngày nay
-
được mã hóa bằng các chìa khóa 256 bit.
Điều đó đồng nghĩa với việc máy tính của kẻ xấu
-
can thiệp thông điệp của bạn cần phải thử
chừng này phương án khả thi… cho đến khi tìm ra được
-
chìa khóa và bẻ khóa thông điệp. Ngay cả nếu bạn
có 100.000 máy tính ưu việt và mỗi một máy
-
có thể thử một triệu tỷ chìa khóa mỗi giây
sẽ mất khoảng hàng nghìn nghìn tỷ năm
-
mới thử hết các phương án, chỉ để bẻ khóa
một thông điệp được bảo vệ bằng mã hóa 256 bit.
-
Tất nhiên, vi mạch máy tính sẽ nhanh hơn hai lần
và nhỏ hơn một nửa sau mỗi năm. Nếu tốc độ
-
tiến triển theo cấp số nhân ấy cứ tiếp tục thì
những bài toán hóc búa hôm nay sẽ có lời giải
-
chỉ sau vài trăm năm nữa và 256 bit
sẽ không còn đủ an toàn nữa. Trên thực tế,
-
chúng ta đã phải tăng độ dài chìa khóa tiêu chuẩn
để theo kịp tốc độ của máy tính.
-
Tin vui là dùng chìa khóa dài hơn sẽ không làm
việc mã hóa thông điệp thêm khó khăn nhưng nó
-
sẽ tăng số lượng phán đoán phải đưa ra
để bẻ khóa một mật mã lên theo cấp số nhân.
-
Trường hợp người gửi và người nhận dùng chung một chìa khóa
để xáo trộn và sắp xếp lại thông điệp được gọi là
-
Mã hóa đối xứng. Giống như Mật mã Caesar,
trong Mã hóa đối xứng, chìa khóa bí mật phải được
-
bí mật thống nhất từ trước bởi hai người.
Điều này rất tiện cho con người nhưng Internet
-
là hệ thống mở và công khai nên hai máy tính
không thể nào "gặp" riêng để thống nhất
-
chìa khóa bí mật. Thay vào đó, máy tính dùng các chìa khóa
Mã hóa bất đối xứng, một chìa khóa công khai có thể
-
trao đổi với bất kỳ ai và một chìa khóa bảo mật
giữ kín. Khóa công khai được dùng để mã hóa
-
dữ liệu và ai cũng có thể dùng nó để tạo thông điệp
bí mật nhưng bí mật chỉ có thể được giải mã
-
bởi máy tính có quyền truy cập khóa bảo mật. Cơ chế
hoạt động của nó liên quan đến vài phép toán mà chúng ta
-
sẽ chưa tìm hiểu vào lúc này. Cứ nghĩ thế này nhé,
tưởng tượng bạn có một hộp thư cá nhân,
-
mọi người đều có thể bỏ thư vào nhưng họ cần
có chìa khóa mới gửi được. Giờ bạn có thể tạo rất nhiều bản
-
chìa khóa gửi thư và gửi đến cho bạn bè
hoặc thậm chí là công khai luôn chìa khóa ấy.
-
Bạn của bạn hoặc thậm chí người lạ có thể dùng chìa khóa
công khai để tiếp cận hộp thư và bỏ thư
-
vào khe. Nhưng chỉ có bạn mới có thể mở hộp thư
bằng chìa khóa bảo mật và gom hết tất cả
-
những lá thư bí mật bạn nhận được. Và bạn
có thể gửi lại thư bảo mật cho bạn bè
-
bằng cách dùng chìa khóa gửi công khai vào hộp thư của họ.
Bằng cách này, người ta có thể trao đổi thông điệp bảo mật
-
mà không cần phải thống nhất với nhau về chìa khóa
bảo mật. Mã hóa bằng khóa công khai là nền tảng
-
cho mọi trao đổi thông tin bảo mật trên mạng Internet mở.
Bao gồm cả các Giao thức Internet phổ biến như
-
SSL và TLS, giúp bảo vệ chúng ta khi chúng ta
lướt web. Ngày nay, máy tính của bạn dùng khóa này
-
bất cứ khi nào bạn nhìn thấy một cái khóa nhỏ hoặc
các chữ cái https trên thanh địa chỉ trình duyệt của bạn.
-
Điều này có nghĩa là máy tính của bạn đang dùng
mã hóa khóa công khai để trao đổi thông tin an toàn với
-
trang web bạn đang truy cập. Khi ngày càng có nhiều người
truy cập Internet, sẽ ngày càng có nhiều
-
dữ liệu riêng tư được trao đổi và nhu cầu
bảo mật dữ liệu ấy sẽ ngày càng thêm quan trọng.
-
Và khi máy tính ngày càng thêm nhanh,
chúng ta sẽ phải phát triển nhiều cách thức mới để
-
máy tính khó lòng phá vỡ các mã hóa. Đây là điều
tôi đang làm và nó liên tục thay đổi.