0:00:02.940,0:00:08.500 Internet: Mã hóa và khóa công khai 0:00:08.990,0:00:14.150 Xin chào, tôi là Mia Gil-Epner, tôi học chuyên ngành[br]Khoa học máy tính tại UC Berkeley và tôi làm việc 0:00:14.150,0:00:19.460 cho Bộ Quốc phòng, nơi tôi tìm cách[br]đảm bảo thông tin được an toàn. 0:00:19.460,0:00:25.510 Internet là một hệ thống mở và công khai. Tất cả chúng ta đều[br]gửi và nhận thông tin thông qua các đường dẫn và 0:00:25.510,0:00:30.039 kết nối chung. Nhưng mặc dù đó là một[br]hệ thống mở, chúng ta vẫn trao đổi rất nhiều 0:00:30.039,0:00:35.890 dữ liệu riêng tư. Những thứ như số thẻ tín dụng,[br]thông tin ngân hàng, mật khẩu và email. 0:00:35.890,0:00:40.690 Vậy tất cả những thứ riêng tư này được bảo mật như thế nào?[br]Mọi loại dữ liệu đều có thể được bảo mật thông qua 0:00:40.690,0:00:45.299 quá trình gọi là mã hóa, tức xáo trộn[br]hoặc biến đổi thông điệp để ẩn nội dung gốc. 0:00:45.309,0:00:51.900 Ngày nay, giải mã là quá trình sắp xếp lại[br]để có thể đọc được thông điệp đó. 0:00:51.900,0:00:56.970 Đây là ý tưởng cơ bản và con người đã làm việc này[br]hàng thế kỷ qua. Một trong những phương pháp mã hóa 0:00:56.970,0:01:02.379 phổ biến đầu tiên là Mật mã Caesar. Đặt theo[br]tên của Julius Caesar, vị tướng người La Mã 0:01:02.379,0:01:07.220 đã mã hóa các mệnh lệnh quân sự của mình[br]để đảm bảo nếu bị can thiệp, quân địch 0:01:07.220,0:01:12.540 cũng sẽ không đọc được những mệnh lệnh ấy.[br]Mật mã Caesar là một Thuật toán thay thế 0:01:12.540,0:01:16.759 từng chữ cái trong thông điệp gốc bằng một[br]chữ cái cách đó một số chữ cái nhất định 0:01:16.759,0:01:21.259 trong bảng chữ cái. Nếu đó là số chỉ có[br]người gửi và người nhận được biết, số đó gọi là 0:01:21.259,0:01:28.640 chìa khóa. Nó cho phép người đọc giải mã được[br]thông điệp bí mật. Ví dụ: Nếu thông điệp gốc là 0:01:28.640,0:01:35.869 "HELLO" thì khi dùng thuật toán Mật mã Caesar[br]với chìa khóa là 5, thông điệp được mã hóa 0:01:35.869,0:01:43.259 sẽ là thế này… Để giải mã thông điệp,[br]người nhận đơn giản sẽ dùng chìa khóa để đảo ngược 0:01:43.259,0:01:50.179 quá trình. Nhưng một vấn đề lớn của[br]Mật mã Caesar chính là ai cũng có thể dễ dàng giải mã 0:01:50.179,0:01:55.569 hoặc bẻ khóa thông điệp được mã hóa bằng cách thử[br]mọi chìa khóa khả dụng và trong bảng chữ cái tiếng Anh, 0:01:55.569,0:02:00.389 chỉ có 26 chữ cái, có nghĩa là[br]bạn sẽ chỉ cần thử tối đa 26 chìa khóa để 0:02:00.389,0:02:06.810 giải mã thông điệp. Ngày nay, việc thử 26 chìa khóa[br]khả dụng chẳng mấy khó khăn, chỉ mất tối đa 0:02:06.810,0:02:13.050 1 hoặc 2 giờ. Vậy hãy làm cho việc này khó hơn.[br]Thay vì dịch chuyển mọi chữ cái theo cùng một số, 0:02:13.050,0:02:18.920 hãy dịch chuyển mỗi chữ cái theo một số khác nhau.[br]Trong ví dụ này, chìa khóa mười chữ số cho biết số lượng 0:02:18.920,0:02:26.560 vị trí mỗi chữ cái liên tiếp sẽ được thay đổi[br]để mã hóa thông điệp dài hơn. Sẽ rất khó 0:02:26.560,0:02:34.160 để đoán ra chìa khóa này. Sử dụng mã hóa 10 chữ số[br]có thể tồn tại 10 tỷ kết quả là chìa khóa khả dụng. 0:02:34.160,0:02:39.860 Rõ ràng, đó là điều mà không con người nào[br]có thể giải mã vì sẽ mất hàng thế kỷ. 0:02:39.860,0:02:46.030 Nhưng một máy tính bình thường ngày nay chỉ mất[br]một vài giây để thử hết 10 tỷ khả năng. 0:02:46.030,0:02:51.240 Vậy, trong thế giới hiện đại, nơi kẻ xấu[br]được trang bị máy tính thay vì bút chì, 0:02:51.240,0:02:57.890 làm sao để mã hóa thông điệp bảo mật tới mức[br]việc bẻ khóa là quá khó? Giờ đây, quá khó nghĩa là 0:02:57.890,0:03:03.760 có quá nhiều khả năng cần tính toán trong khoảng[br]thời gian hợp lý. Các giao tiếp bảo mật ngày nay 0:03:03.760,0:03:10.200 được mã hóa bằng các chìa khóa 256 bit.[br]Điều đó đồng nghĩa với việc máy tính của kẻ xấu 0:03:10.200,0:03:16.290 can thiệp thông điệp của bạn cần phải thử[br]chừng này phương án khả thi… cho đến khi tìm ra được 0:03:16.290,0:03:24.040 chìa khóa và bẻ khóa thông điệp. Ngay cả nếu bạn[br]có 100.000 máy tính ưu việt và mỗi một máy 0:03:24.040,0:03:30.680 có thể thử một triệu tỷ chìa khóa mỗi giây[br]sẽ mất khoảng hàng nghìn nghìn tỷ năm 0:03:30.680,0:03:37.690 mới thử hết các phương án, chỉ để bẻ khóa[br]một thông điệp được bảo vệ bằng mã hóa 256 bit. 0:03:37.690,0:03:43.320 Tất nhiên, vi mạch máy tính sẽ nhanh hơn hai lần[br]và nhỏ hơn một nửa sau mỗi năm. Nếu tốc độ 0:03:43.320,0:03:48.400 tiến triển theo cấp số nhân ấy cứ tiếp tục thì[br]những bài toán hóc búa hôm nay sẽ có lời giải 0:03:48.400,0:03:54.680 chỉ sau vài trăm năm nữa và 256 bit[br]sẽ không còn đủ an toàn nữa. Trên thực tế, 0:03:54.680,0:04:01.070 chúng ta đã phải tăng độ dài chìa khóa tiêu chuẩn[br]để theo kịp tốc độ của máy tính. 0:04:01.070,0:04:05.540 Tin vui là dùng chìa khóa dài hơn sẽ không làm[br]việc mã hóa thông điệp thêm khó khăn nhưng nó 0:04:05.540,0:04:11.660 sẽ tăng số lượng phán đoán phải đưa ra[br]để bẻ khóa một mật mã lên theo cấp số nhân. 0:04:11.660,0:04:16.779 Trường hợp người gửi và người nhận dùng chung một chìa khóa[br]để xáo trộn và sắp xếp lại thông điệp được gọi là 0:04:16.779,0:04:24.199 Mã hóa đối xứng. Giống như Mật mã Caesar,[br]trong Mã hóa đối xứng, chìa khóa bí mật phải được 0:04:24.199,0:04:29.710 bí mật thống nhất từ trước bởi hai người.[br]Điều này rất tiện cho con người nhưng Internet 0:04:29.710,0:04:35.840 là hệ thống mở và công khai nên hai máy tính[br]không thể nào "gặp" riêng để thống nhất 0:04:35.840,0:04:41.599 chìa khóa bí mật. Thay vào đó, máy tính dùng các chìa khóa[br]Mã hóa bất đối xứng, một chìa khóa công khai có thể 0:04:41.599,0:04:49.020 trao đổi với bất kỳ ai và một chìa khóa bảo mật[br]giữ kín. Khóa công khai được dùng để mã hóa 0:04:49.020,0:04:55.800 dữ liệu và ai cũng có thể dùng nó để tạo thông điệp[br]bí mật nhưng bí mật chỉ có thể được giải mã 0:04:55.800,0:05:01.270 bởi máy tính có quyền truy cập khóa bảo mật. Cơ chế[br]hoạt động của nó liên quan đến vài phép toán mà chúng ta 0:05:01.270,0:05:06.129 sẽ chưa tìm hiểu vào lúc này. Cứ nghĩ thế này nhé,[br]tưởng tượng bạn có một hộp thư cá nhân, 0:05:06.129,0:05:11.430 mọi người đều có thể bỏ thư vào nhưng họ cần[br]có chìa khóa mới gửi được. Giờ bạn có thể tạo rất nhiều bản 0:05:11.430,0:05:16.509 chìa khóa gửi thư và gửi đến cho bạn bè[br]hoặc thậm chí là công khai luôn chìa khóa ấy. 0:05:16.509,0:05:21.400 Bạn của bạn hoặc thậm chí người lạ có thể dùng chìa khóa[br]công khai để tiếp cận hộp thư và bỏ thư 0:05:21.400,0:05:27.400 vào khe. Nhưng chỉ có bạn mới có thể mở hộp thư[br]bằng chìa khóa bảo mật và gom hết tất cả 0:05:27.400,0:05:31.539 những lá thư bí mật bạn nhận được. Và bạn[br]có thể gửi lại thư bảo mật cho bạn bè 0:05:31.539,0:05:37.620 bằng cách dùng chìa khóa gửi công khai vào hộp thư của họ.[br]Bằng cách này, người ta có thể trao đổi thông điệp bảo mật 0:05:37.620,0:05:43.699 mà không cần phải thống nhất với nhau về chìa khóa[br]bảo mật. Mã hóa bằng khóa công khai là nền tảng 0:05:43.699,0:05:49.340 cho mọi trao đổi thông tin bảo mật trên mạng Internet mở.[br]Bao gồm cả các Giao thức Internet phổ biến như 0:05:49.340,0:05:55.900 SSL và TLS, giúp bảo vệ chúng ta khi chúng ta[br]lướt web. Ngày nay, máy tính của bạn dùng khóa này 0:05:55.900,0:06:01.400 bất cứ khi nào bạn nhìn thấy một cái khóa nhỏ hoặc[br]các chữ cái https trên thanh địa chỉ trình duyệt của bạn. 0:06:01.400,0:06:07.409 Điều này có nghĩa là máy tính của bạn đang dùng[br]mã hóa khóa công khai để trao đổi thông tin an toàn với 0:06:07.409,0:06:13.400 trang web bạn đang truy cập. Khi ngày càng có nhiều người[br]truy cập Internet, sẽ ngày càng có nhiều 0:06:13.400,0:06:19.080 dữ liệu riêng tư được trao đổi và nhu cầu[br]bảo mật dữ liệu ấy sẽ ngày càng thêm quan trọng. 0:06:19.080,0:06:24.059 Và khi máy tính ngày càng thêm nhanh,[br]chúng ta sẽ phải phát triển nhiều cách thức mới để 0:06:24.059,0:06:29.259 máy tính khó lòng phá vỡ các mã hóa. Đây là điều[br]tôi đang làm và nó liên tục thay đổi.