Ví dụ không thực tế và khá ngớ ngẩn này mô tả tất cả về mật mã học. Mật mã học là khoa học về bảo mật thông tin liên lạc. Thuật ngữ này được lấy từ tiếng Hy Lạp kryptós ("ẩn, bí mật") và lógos ("từ"). Thực chất là nói về việc “giấu lời”. Nó chỉ là một trụ cột trong khoa học An ninh mạng, nhưng nó là một trụ cột quan trọng. Ở cơ sở của trụ cột này là các phân ngành của mật mã học: Mật mã học và Phân tích mật mã. Cả hai gần như có thể được coi là bổ sung cho nhau. Trong đó mật mã là hoạt động chuyển đổi thông tin liên lạc thành một dạng mà kẻ nghe trộm không thể đọc được, thì phân tích mật mã là hoạt động cố gắng làm sáng tỏ các thông điệp đã được biến đổi đó bởi một người nhận không chủ ý.
Và nó ở đây, dưới chân của trụ cột này, nơi một bằng chứng về một vấn đề có thể gây ra sự sụp đổ của An ninh mạng.
Vì vậy, hãy vào Pantheon, ngôi đền An ninh mạng này nếu bạn muốn, và để tôi hướng dẫn bạn đến nơi mà các vết nứt trên các cột Corinthian bắt đầu lộ ra.
Có nhiều thuật toán khác nhau được thiết kế để giữ an toàn cho các tin nhắn. Tôi sẽ cho bạn biết một chút về một số hệ thống đó để nền tảng của các thuật toán này trở nên rõ ràng.
Nếu bạn đã đọc bất cứ điều gì về mật mã, rất có thể bạn đã bắt gặp một khái niệm được gọi là "mật mã Caesar". Đây là một ví dụ khác về phương pháp được sử dụng để bảo mật thư. Nó cũng được gán cho Caesar, mặc dù điều này không liên quan đến khóa của người đưa tin (nhằm chơi chữ) để giữ an toàn cho tin nhắn. Thay vào đó, mật mã này đưa ra một khái niệm quan trọng mà một phần đáng kể của các thuật toán mật mã dựa trên: Số học mô-đun.
Tôi biết rồi mà. Nghe có vẻ đáng sợ đúng không? Điều gì sẽ xảy ra nếu tôi nói với bạn, nó đơn giản đến mức bạn sử dụng nó hàng ngày? Hãy xem, đồng hồ của bạn cũng dựa trên số học mô-đun. Khi bạn đang cố gắng tìm hiểu xem bạn sẽ ngủ được bao nhiêu nếu bạn phải thức dậy lúc 06:00, vì bạn hoàn thành thời hạn đó vào lúc 23:00, bạn biết không tính quá 24:00. . Kết quả luôn là dưới 24:00. Về cơ bản, bạn đang tính toán mô-đun 24. Đây là số học mô-đun và nó được sử dụng rộng rãi trong mật mã. Tuy nhiên, ngay cả trong sự đơn giản của nó, số học mô-đun nắm giữ nhiều bí mật mà không được hiển thị ngay lập tức. Nhiều thuật toán mật mã dựa trên những bí mật này.
Mật mã Caesar là một mật mã đối xứng. Điều này có nghĩa là cả hai bên sử dụng cùng một khóa. Giả sử khóa là 3. Người gửi sẽ thay đổi mọi ký tự trong thư của mình bằng 3. Điều này được gọi là mã hóa. Người nhận cần biết khóa, và sau đó sẽ dịch chuyển ngược lại từng chữ cái 3, thu được tin nhắn ban đầu. Đây được gọi là giải mã. So sánh phương pháp này với phương pháp truyền tin hói. Mã hóa là để cho tóc của người đưa tin phát triển trên tin nhắn, giải mã là làm cho người đưa tin bị hói.
Bây giờ, mật mã Caesar có rất an toàn không? Chà, không hẳn vậy. Bất kỳ ai cũng có thể dễ dàng thử tất cả các khóa khác nhau, trong đó có tổng cộng 26 khóa và tìm đúng khóa để làm sáng tỏ thông báo. Đây được gọi là một cuộc tấn công Brute Force. Mặc dù mật mã không được bảo mật cho lắm, nhưng nó tuân thủ một nguyên tắc quan trọng mà các sứ giả hói của Caesar không tuân thủ. Nguyên tắc Kerckhoffs nêu rõ:
"Một mật mã không nên yêu cầu bí mật, và nó sẽ không có vấn đề gì nếu nó rơi vào tay kẻ thù."
Nói cách khác, nguyên tắc chỉ ra rằng chìa khóa được giữ bí mật. Phương thức này có thể được đặt ở chế độ công khai, nhưng không có khóa, thông báo sẽ vẫn được bảo mật.
Nếu người đưa tin hói trước đây của Caesar bị kẻ thù chặn lại và kẻ đánh chặn biết được phương pháp mà Caesar sử dụng, thì người đưa tin tội nghiệp sẽ bị cạo trọc đầu ngay lập tức, để lộ thông điệp trên da đầu của anh ta. Tuy nhiên, với mật mã của Caesar, ngay cả khi kẻ đánh chặn biết phương pháp mã hóa, anh ta vẫn sẽ phải thử 26 khóa khác nhau để phát hiện ra thông điệp.
Mật mã Caesar là một trong những mật mã đơn giản nhất đang tồn tại, nhưng tính đơn giản của nó thể hiện một cách độc đáo các khía cạnh của số học mô-đun. Các hệ mật mã đối xứng phổ biến khác là DES, 3DES và AES. Về cơ bản, chúng làm điều tương tự như mật mã của Caesar, mặc dù theo cách phức tạp hơn và khó bạo lực hơn. Nếu bạn muốn đọc thêm về các hệ thống này, tôi thực sự khuyên bạn nên đọc .
Hãy giới thiệu một khái niệm quan trọng khác. Mật mã không đối xứng (hoặc mật mã khóa công khai). Sự khác biệt là thay vì hai bên có cùng một khóa, họ có khóa công khai và bí mật của riêng mình.
Trước khi chúng ta đi sâu vào RSA, đây là một thông tin thú vị về nó dành cho bạn. Khi RSA được phát minh bởi Ron Rivest, Adi Shamir và Leonard Adleman, việc họ xuất khẩu thuật toán hoặc thậm chí mô tả của nó, như một phần của việc kiểm soát bom, đạn ở Mỹ là bất hợp pháp. RSA được coi là mạnh đến mức nó phải được giữ bí mật quân sự. Để phản đối quyền tự do ngôn luận, họ mặc những chiếc áo phông có in thuật toán trên đó đến các hội nghị và cuộc nói chuyện.
RSA là hệ thống mật mã khóa công khai phổ biến nhất. Đó là một hệ thống tuyệt vời minh họa hoàn hảo những gì mà rất nhiều mật mã hiện đại dựa trên. Chúng tôi sẽ tìm hiểu một chút kỹ thuật ở đây nhưng hãy chịu đựng với tôi.
Định lý cơ bản của số học phát biểu rằng bất kỳ số dương nào cũng có thể được biểu diễn theo một cách chính xác dưới dạng tích của một hoặc nhiều số nguyên tố. Ví dụ, số 77 có thể được biểu diễn bằng phép nhân 7 (một số nguyên tố) và 11 (một số nguyên tố). Không có cách nào khác để biểu diễn số 77 dưới dạng số nguyên tố ngoài việc thay đổi thứ tự của các số nguyên tố. Hãy ghi nhớ điều này trong khi tôi giải thích RSA.
Trước khi có thể gửi tin nhắn, chúng ta cần thực hiện một số thiết lập. Giả sử, Bob muốn gửi một tin nhắn cho Alice và có một số kẻ nghe trộm tên là Eve. Alice, với tư cách là người nhận, chọn hai số nguyên tố lớn. Cô nhân hai số này để được kết quả m, tính môđun. Chúng tôi sẽ giữ nó đơn giản và nhỏ trong ví dụ của chúng tôi. Alice chọn 7 và 11 làm số nguyên tố, dẫn đến mô-đun 77. Cô công bố mô-đun 77 và một số số mũ mã hóa được chọn e. Sự kết hợp của modulus 77 và số mũ mã hóa e được gọi là khóa công khai của cô ấy.
Với khóa công khai của Alice, Bob có thể mã hóa thông điệp mà anh ta muốn gửi. Trong trường hợp này, tin nhắn là một số x. Mã hóa trong RSA được thực hiện bằng cách lấy x ^ e mod m. Điều này dẫn đến bản mã y và gửi nó cho Alice.
Bây giờ, Alice có thể thực hiện một số phép thuật với các thừa số nguyên tố 7 và 11, dẫn đến một phần thông tin được gọi là d (để giải mã). Đây là chìa khóa bí mật của Alice. Tất cả những gì Alice phải làm bây giờ là lấy y ^ d, điều này sẽ dẫn đến thông điệp ban đầu của Bob là x.
Phù, rất nhiều, nhưng phần khó đã qua! Bây giờ, hãy chú ý rằng chỉ Alice biết thừa số nguyên tố 7 và 11. Điều này có nghĩa là chỉ Alice mới có thể làm trò ảo thuật đó để lấy thông tin d. Nhưng nếu bạn nhạy bén, bạn sẽ không đồng ý với tôi ở đây. Bạn sẽ nói: "Vì số 77 được xuất bản và mọi người đều có quyền truy cập vào nó, nên Eve có thể dễ dàng tìm ra 77 = 7 * 11 và thực hiện trò ảo thuật đó để có được d, mà cô ấy có thể nhận được thông điệp ban đầu là x". Tôi sẽ đồng ý với bạn ở đây. Sau đó, tôi sẽ cho bạn biết: "Các số nguyên tố là gì của số 30142741". Rất có thể bạn sẽ không thể cho tôi biết câu trả lời. Tôi có thể rất dễ dàng cho bạn biết câu trả lời vì tất cả những gì tôi làm là lấy hai số nguyên tố và nhân chúng với nhau để có 30142741. Và nếu tôi nói với bạn hai số đó, bạn có thể dễ dàng xác minh rằng sản phẩm là 30142741. Vì vậy, thực tế, RSA dựa vào Eve (hoặc bạn) không thể tìm thấy hai số nguyên tố đó. Trong trường hợp này, các số nguyên tố là 6037 và 4993. Hãy xem việc phân tích số nguyên tố khó như thế nào, nhưng việc xác minh các số nguyên tố chính xác dễ dàng như thế nào?
Đó là nó! Cuối cùng thì chúng tôi cũng ở chân trụ. Bạn có thấy các vết nứt không? Chắc là không. Hãy để tôi làm rõ.
Vì vậy, các phép biến đổi chúng ta áp dụng cho thông điệp (mã hóa) cần phải có khả năng đảo ngược để người nhận có thể giải mã nó. Người nhận có thể đảo ngược tin nhắn vì cô ấy đang sở hữu một số thông tin bổ sung. Trong khi đó, bất kỳ người đánh chặn nào, không sở hữu thông tin đó, sẽ không thể giải mã thông điệp. Trong RSA, ví dụ, bộ đánh chặn sẽ cần phải tìm hai hệ số chính của mô đun. Tất nhiên, việc tìm hai thừa số nguyên tố của một số nhỏ như 77 là điều dễ dàng, nhưng việc phân tích thừa số nguyên tố trở nên khó hơn nhiều khi một số lớn được chọn. Việc xác minh rằng hai số nguyên tố là thừa số của môđun luôn tương đối dễ dàng vì bạn chỉ cần thực hiện phép nhân.
Nếu việc phân tích thừa số nguyên tố dễ dàng hoặc nếu có một thuật toán có thể giải quyết vấn đề tương đối nhanh, thì RSA sẽ trở nên lỗi thời. Nó dựa vào thừa số nguyên tố khó giải quyết, nhưng dễ xác minh. Chúng ta có thể phân biệt hai nhóm vấn đề. Có những bài toán mà chúng ta biết cách để tìm ra câu trả lời một cách nhanh chóng, chẳng hạn như phép nhân hoặc bình phương. Tập hợp này được gọi là "lớp P". Lớp khác, "NP" là một tập hợp các vấn đề mà không có cách nào được biết để tìm ra câu trả lời nhanh chóng, nhưng khi bạn có một số thông tin, câu trả lời có thể dễ dàng xác minh. Phân tích thừa số nguyên tố thuộc về lớp này.
Nhưng nếu có một cách để giải một bài toán thừa số nguyên tố một cách dễ dàng thì sao? Điều này có nghĩa là thừa số nguyên tố thuộc về lớp P. Trên thực tế, có lẽ chúng ta có thể chứng minh rằng tất cả các bài toán NP thực sự là bài toán P. Kết luận sẽ là P = NP.
Kết luận này sẽ gây ra những hậu quả tai hại cho mật mã. Như chúng ta đã thấy, RSA dựa vào việc phân tích nhân tử số nguyên tố rất khó giải quyết. Nhưng RSA chỉ là một trong nhiều thuật toán dựa trên các bài toán NP và phân tích thừa số nguyên tố chỉ là một ví dụ của bài toán NP. Các mật mã đối xứng và không đối xứng khác được sử dụng cho các giao dịch tài chính của bạn, liên lạc qua email của bạn, v.v. sẽ bị lỗi thời.
Bitcoin và các loại tiền điện tử khác cũng sẽ phải gánh chịu những hậu quả nghiêm trọng vì Bitcoin phụ thuộc vào quá trình băm mật mã, cụ thể là thuật toán băm SHA-256. Để một khối mới được chấp nhận trong blockchain, khối mới này cần phải chứa bằng chứng công việc. Nói tóm lại, việc xác minh bằng chứng là dễ dàng đối với bất kỳ nút nào trong mạng, nhưng việc tạo ra con số chính xác thì cực kỳ khó.
Mặt khác, việc chứng minh P = NP có thể có những hệ quả tích cực đối với các lĩnh vực khác. Nhiều vấn đề toán học vẫn khó giải quyết. Chỉ cần tưởng tượng những ảnh hưởng mà nó có thể có đối với toán học!
Bằng chứng về P ≠ NP có nghĩa là các thuật toán mật mã của chúng tôi được bảo mật và tiêu đề của bài viết này chỉ là chiêu trò nhấp chuột. Nhưng ít nhất tôi đã cho bạn cơ hội để giành được một triệu đô la! Đó là phần thưởng mà Viện Toán học Clay sẽ trao cho người đầu tiên giải được bài toán "P vs NP".
Vì vậy hãy đưa nó cây súng! Có thể bạn có thể là người phá vỡ mật mã hiện đại và đưa chúng tôi trở lại sử dụng sứ giả hói để liên lạc hàng ngày của chúng tôi.
Cũng được xuất bản tại