Nguồn gốc của mật mã——Từ [Mã ​​hóa Caesar] đến [One Time Pad]
猎豹区块链安全
2018-12-27 13:49
本文约1806字,阅读全文需要约7分钟
"Bạn phải biết luật chơi để chơi giỏi hơn bất kỳ ai khác - Albert Einstein."


Như chúng ta đã biết, mật mã là nền tảng của tiền điện tử kỹ thuật số, nó đảm bảo tính bảo mật cho tài sản của chúng ta và nó cũng là quy tắc cơ bản của hoạt động khai thác. Tuy nhiên, hầu hết họ đều biết rất ít về mật mã nên rất khó hiểu được phương thức mã hóa của các dự án blockchain, nếu không hiểu thì không thể nói về niềm tin của mình đối với dự án mà chỉ có thể hùa theo xu hướng. suy đoán bằng tiền xu.

Để giải quyết sự nhầm lẫn của mọi người, Cheetah Blockchain sẽ sản xuất một loạt bài viết về mật mã, bắt đầu từ phương pháp mã hóa lâu đời nhất và đi sâu hơn để giúp bạn hiểu nhiều khái niệm về mật mã và đánh giá tính bảo mật của các dự án blockchain.

mã hóa Caesar

Mật mã nổi tiếng đầu tiên, mật mã Caesar, được Julius Caesar sử dụng vào khoảng năm 58 trước Công nguyên, trong mệnh lệnh quân sự của mình, Caesar đã chuyển từng chữ cái để ngăn kẻ thù của mình chặn mệnh lệnh quân sự của Caesar, và trực tiếp thu được thông tin thực của ông.

Mã hóa Caesar là phương thức mã hóa đơn giản nhất, hai bên mã hóa trước tiên phải đạt được sự thống nhất về số lần dịch chuyển của bức thư. Ví dụ: số lần dịch chuyển được mã hóa mà chúng ta đã thống nhất là 3. Khi đó, mỗi bức thư tôi gửi đi phải trải qua 3 lần dịch chuyển .(A thành D, B thành E, C thành F...)

Giả sử bản rõ của tôi là "tấn công", sau khi mã hóa Caesar với độ dịch chuyển là 3, nó sẽ trở thành "dwwtfn".

Sau đó gửi văn bản được mã hóa cho bên kia thông qua người đưa tin, theo cách này, ngay cả khi kẻ thù bắt được người đưa tin, họ sẽ nhận được một loạt văn bản khó hiểu, và các tướng lấy được bản mã thành công sẽ chuyển bản mã Thông tin bản rõ thực sự có thể thu được bằng cách trừ 3 từ mỗi chữ cái và quá trình này được gọi là giải mã.

Mật mã Caesar là phương pháp mã hóa sớm nhất và đã được các tướng lĩnh quân đội phương Tây sử dụng hàng trăm năm. Cuối cùng, sau 800 năm, một nhà toán học Ả Rập tên là AI-Kindi đã giải được mật mã Caesar:

Nếu bạn quét văn bản của bất kỳ cuốn sách tiếng Anh nào và tính toán tần suất của từng chữ cái, bạn sẽ tìm thấy một bí mật đáng kinh ngạc, đó là trong văn bản tiếng Anh, chữ cái được sử dụng thường xuyên nhất luôn là e, đó là văn bản tiếng Anh được xác định bởi tự nhiên, và người viết bản mã sẽ không nhận ra điều đó. Trong mật mã, đây được gọi là dấu vân tay.

Do đó, chỉ cần chúng ta tìm thấy chữ cái được sử dụng thường xuyên nhất trong bản mã và so sánh nó với chữ cái e, chúng ta có thể tìm thấy độ dịch chuyển được mã hóa của mật mã Caesar. Ví dụ: trong bản mã, chữ cái được sử dụng nhiều nhất là h, sau đó chúng ta có thể suy ra rằng độ dịch chuyển được mã hóa Đó là 3. Với độ dịch chuyển được mã hóa, tất cả các văn bản gốc có thể được suy ra.

Phương pháp này được gọi là phân tích tần số, và sự xuất hiện của nó là một đòn rất lớn đối với tính bảo mật của mật mã Caesar.

Tuy nhiên, một mật khẩu mạnh có thể che giấu dấu vân tay này và cách để che giấu dấu vân tay là phân bổ tần suất sử dụng chữ cái đồng đều.

mật khẩu nhiều bảng

Vào khoảng thế kỷ 15, một người nào đó đã đề xuất mật mã nhiều bảng để đạt được mục đích này, sự khác biệt giữa mật mã nhiều bảng và mật mã Caesar là nó không sử dụng một số duy nhất để mã hóa chuyển vị mà đề cập đến một từ chuyển vị.

Bước đầu tiên trong phương pháp mã hóa này là xác định từ dịch chuyển, giả sử đó là "thế giới", sau đó chuyển đổi từ đó thành một số theo vị trí của từ trong bảng chữ cái, "thế giới" → "21, 15, 18 , 12, 4". Tiếp theo, dãy số này được lặp lại trong quá trình mã hóa thông tin và thông tin bản rõ được dịch chuyển theo dãy số này.

Giả sử bản rõ là "abcde fghij" và bản mã được mã hóa là "vrvqj bwavo"

Nguồn gốc của mật mã——Từ [Mã ​​hóa Caesar] đến [One Time Pad]

Bằng cách này, khi bản mã được gửi cho đối tác, đối tác có thể giải mã thông tin bằng cách trừ đi độ dịch chuyển tương ứng theo từ bí mật đã thỏa thuận trước.

Nếu bản mã bị chặn, kẻ nghe lén sẽ tìm thấy phân phối phẳng hơn bằng cách đếm tần suất của các chữ cái được sử dụng.

Vì vậy, làm thế nào anh ta sẽ phá vỡ nó?

Thực ra rất đơn giản, xin hãy nhớ rằng crackers đang tìm kiếm rò rỉ thông tin, tức là tìm kiếm một phần dấu vân tay, chỉ cần có sự khác biệt về tần suất của các chữ cái, thì sẽ tìm ra rò rỉ thông tin, sự khác biệt này là do bởi sự lặp lại trong bản mã.

Trong ví dụ này, mật khẩu của nhà xuất bản sử dụng một từ được lặp lại. Để phá mã hóa, trước tiên kẻ đánh cắp cần xác định độ dài của từ bị dịch chuyển được sử dụng chứ không phải chính từ đó. Kẻ đó cần thống kê toàn bộ thông tin và kiểm tra độ dài của từ đó. tần số của các khoảng thời gian khác nhau.phân phối, và khi anh ta kiểm tra phân bố tần số với khoảng thời gian 5 chữ cái, dấu vân tay đã tự hiển thị.

Do đó, phương pháp mã hóa sử dụng nhiều lần dịch chuyển này, so với phương pháp mã hóa một lần dịch chuyển do Caesar sử dụng, thì mạnh hơn trong thời gian xác định độ dài của từ dịch chuyển. Do đó, từ dịch chuyển càng dài thì thông tin càng an toàn.

Mặc dù mật mã nhiều bảng an toàn hơn nhiều so với mật mã Caesar, nhưng về lý thuyết, nó có thể bị bẻ khóa miễn là mất thời gian.

đệm một lần

Có phương pháp mã hóa nào để đảm bảo tính bảo mật tuyệt đối của thông tin không? Câu trả lời là mã hóa ngẫu nhiên.

Hãy tưởng tượng nếu bộ mã hóa tung một con xúc xắc 26 mặt để tạo ra một dãy dài các số được dịch chuyển ngẫu nhiên, sau đó chia sẻ nó với bộ giải mã để thay thế các từ đã dịch chuyển và sử dụng dãy số ngẫu nhiên này để dịch chuyển các chữ cái, thì độ dài của dãy là giống như thông tin Độ dài nhất quán, điều này rất quan trọng để tránh bất kỳ sự lặp lại nào, sau đó anh ta gửi bản mã cho người nhận và người nhận sử dụng một cột gồm các số dịch chuyển ngẫu nhiên mà cô ấy đưa ra để giải mã thông báo.

Nếu phương pháp này được áp dụng, kẻ nghe trộm bên thứ ba sẽ rất khó phát hiện ra. Thứ nhất, sự dịch chuyển sẽ không bao giờ rơi vào một mô hình lặp lại. Thứ hai, bản mã sẽ có phân bố tần số đồng đều, vì không có sự khác biệt về tần số, vì vậy Không có rò rỉ thông tin, vì vậy việc bẻ khóa mã hóa về cơ bản là không thể.

Đây là phương pháp mã hóa mạnh nhất, nó xuất hiện vào cuối thế kỷ 19 và hiện nay được gọi là one-time pad.

Về cách thực hiện pad một lần, tôi sẽ tiết lộ cho bạn trong bài viết tiếp theo, vì vậy hãy chú ý theo dõi.

猎豹区块链安全
作者文库