

Nếu bạn muốn hiểu sâu về chuỗi khối và các dự án chuỗi khối, chắc chắn bạn sẽ cần phải hiểu về mật mã. Chuỗi khối là một ứng dụng tích hợp của mật mã, chỉ khi hiểu được mật mã thì chúng ta mới thực sự hiểu được chuỗi khối.
Trung tâm chuỗi khối Cheetah đang ởCác bài báo khoa học phổ biến về nguồn gốc của mật mãtiêu đề cấp đầu tiên
Máy mã hóa Enigma
Trong những ngày đầu của Chiến tranh thế giới thứ hai, sức mạnh chiến tranh tổng thể của chủ nghĩa phát xít thực sự kém xa so với quân Đồng minh, tuy nhiên, Đức và Nhật Bản đã áp dụng một số lượng lớn các chiến thuật bất ngờ, tấn công phủ đầu trong những ngày đầu của Thế chiến thứ hai, và giành được những lợi thế chiến tranh nhất định.
Để thực hiện hiệu quả các chiến thuật đột kích, tình báo là rất quan trọng, vì vậy làm thế nào để đảm bảo an toàn cho tình báo là mục tiêu chính của mật mã trong Thế chiến II.
Chúng tôi đã đề cập trong bài viết trước rằng để đảm bảo tính bảo mật tuyệt đối của thông tin, cần mã hóa thông tin bằng phương pháp one-time pad, tức là mã hóa từng chữ cái với độ dịch chuyển ngẫu nhiên. mỗi chữ cái đầu vào, sau đó xuất chữ cái được mã hóa.
Loại máy tiên tiến nhất lúc bấy giờ được gọi là máy mã hóa rô-to, thực hiện rất tốt việc mã hóa một lần. Và nguyên tắc thực sự rất giống với đồng hồ đo quãng đường mà chúng ta quen thuộc.
(Bánh xe của thiết bị thấp quay một lần và bánh xe của thiết bị cao quay một lưới)
Chúng ta đều biết máy đo đường và phải mất một thời gian dài để lặp lại một tuần.
Hãy tưởng tượng rằng chúng ta xáo trộn các số trên bánh xe công tơ mét, và khi không có dấu tiến nào, chúng ta cộng từng số trên rôto để lấy số dịch chuyển, sau đó thực hiện mã hóa dịch chuyển trên các chữ cái mà chúng ta muốn mã hóa.Đó là nguyên tắc chung của máy mã hóa rôto.
Bộ mã hóa và bộ thu có thể tạo ra cùng một chuỗi dịch chuyển theo phương pháp sau: đầu tiên, chúng cần chia sẻ cùng một máy, sau đó thống nhất về trạng thái ban đầu. Điều này được định nghĩa là cài đặt mã máy, sau đó họ điều chỉnh các máy tương ứng của mình về cùng một vị trí, và cuối cùng, tiếp tục thực hiện thao tác tương tự để có được trình tự giống nhau.
Đối với ba rôto, mỗi rôto có 26 số, trình tự dịch chuyển của mỗi dãy được lặp lại thông qua chuyển động quay của lũy thừa ba của rôto 26 (17576 số).
Và vị trí của mỗi cánh quạt bằng với vị trí tương ứng trong chuỗi,Trạng thái máy ban đầu được gọi là cài đặt mã máy và tập hợp tất cả các cài đặt mã máy được gọi là không gian mã máy, nếu phương thức cài đặt ban đầu của máy tăng lên thì không gian mã máy cũng sẽ tăng lên.
Khi chúng tôi chọn cài đặt mã máy, chúng tôi chọn điểm bắt đầu trong không gian này,Nếu mã máy được đặt thành bị lộ, toàn bộ chuỗi được mã hóa sẽ bị rò rỉ.
Do đó, tính bảo mật của máy mã hóa rôto này phụ thuộc vào kích thước của không gian mã và tính ngẫu nhiên của cài đặt mã.
Một trong những công nghệ mã hóa quan trọng nhất được Đức quốc xã sử dụng trong Thế chiến II là máy mã hóa được gọi là Enigma.
Gần cuối cuộc chiến, Bí ẩn có thể được thiết lập theo hơn 150 triệu triệu cách. Điều này khiến người Đức tin rằng quân Đồng minh đã có được Bí ẩn và không thể xác minh tất cả các cài đặt mã có thể.
Để cả hai bên giao tiếp bằng Enigma, trước tiên họ cần chia sẻ cài đặt mã máy hàng ngày, cho phép họ điều chỉnh các máy tương ứng của mình về cùng một vị trí. Giao thức này đã được thay đổi nhiều lần trong chiến tranh, nhưng thường được phân phối cho Tất cả các nhà khai thác , mỗi ngày, người vận hành sẽ cắt cài đặt cho ngày hôm đó và điều này sẽ cho họ biết, cấu hình mà máy cần cho ngày hôm đó, ví dụ, sử dụng rôto nào, thứ tự của các rôto, sau đó sử dụng , cài đặt mã máy sẽ bị hủy.
Tuy nhiên, đối với người vận hành, vẫn còn một bước quan trọng nữa, trước khi giao tiếp, họ sẽ phải chọn vị trí ban đầu của từng cánh quạt và một số người vận hành lười biếng đã mắc một lỗi rất đơn giản, giống như lỗi mà chúng ta mắc phải với khóa xe đạp cơ học, chúng ta có xu hướng di chuyển rôto vài lần so với vị trí ban đầu hoặc sử dụng lại một tổ hợp chung, điều này phá hủy sự phân bố đồng đều của vị trí rôto ban đầu và sau nhiều lần quan sát, quân đội có thể khôi phục hoàn toàn mạch phân phối của rôto ngược lại.
Loại lỗi con người cấp thấp này đã dẫn đến sự cố cuối cùng của cỗ máy Enigma, gián tiếp ảnh hưởng đến xu hướng của cuộc chiến.
tiêu đề cấp đầu tiên
trình tạo số giả ngẫu nhiên
Trước khi tìm hiểu các số giả ngẫu nhiên, chúng ta hãy xem xét các số ngẫu nhiên thực. Trong thế giới vật chất của chúng ta, có những dao động ngẫu nhiên ở khắp mọi nơi. Bằng cách đo các dao động ngẫu nhiên gọi là nhiễu, chúng ta có thể tạo ra các số ngẫu nhiên thực.Quá trình đo tiếng ồn được gọi là lấy mẫu, chúng ta có thể thu được một số ngẫu nhiên bằng cách lấy mẫu. Tuy nhiên, nói một cách tương đối,Máy móc có tính quyết định, hoạt động của chúng có thể dự đoán và lặp lại.
Năm 1946, von Neumann tham gia thiết kế bom hydro của quân đội và áp dụng máy tính có tên ENIAC, ông dự định tính toán lặp đi lặp lại mô phỏng quá trình tổng hợp hạt nhân, tuy nhiên, điều này yêu cầu truy cập nhanh vào các số được tạo ngẫu nhiên và đảm bảo các số này có thể lặp lại tuy nhiên, bộ nhớ của ENIAC khá hạn chế và việc lưu trữ các chuỗi dài ngẫu nhiên là không thể.
Do đó, von Neumann đã thiết kế một thuật toán để bắt chước tính ngẫu nhiên một cách máy móc. Thuật toán này như sau: Đầu tiên, một số thực sự ngẫu nhiên được gọi là hạt giống được chọn,Con số này có thể đến từ phép đo tiếng ồn, chẳng hạn như thời gian hiện tại tính bằng mili giây, được gọi là hạt giống.Sau đó, lấy hạt giống này làm đầu vào, thực hiện một phép tính đơn giản - tự nhân hạt giống và xuất phần giữa của kết quả này, sau đó sử dụng đầu ra này làm hạt giống tiếp theo và lặp lại quy trình này nhiều lần nếu cần .
Đây được gọi là tính điểm trung bình và là một trong nhiều trình tạo số giả ngẫu nhiên. Vì vậy, sự khác biệt giữa trình tự được tạo ngẫu nhiên và trình tự được tạo giả ngẫu nhiên là gì?
Sự khác biệt cốt lõi là nếu số giả ngẫu nhiên đạt đến một số nhất định, trình tự cuối cùng sẽ lặp lại.Khi một số hạt giống đã được sử dụng trước đó xuất hiện trong thuật toán, chu kỳ sẽ bắt đầu. Độ dài trước khi chuỗi các số giả ngẫu nhiên lặp lại được gọi là một khoảng thời gian. Khoảng thời gian này bị giới hạn nghiêm ngặt bởi độ dài của hạt giống ban đầu.
Ví dụ: nếu chúng ta sử dụng nguồn gốc hai chữ số, thuật toán có thể tạo tối đa 100 số trước khi lặp lại vòng lặp, nguồn gốc 3 chữ số có thể tạo ra 1000 số trước khi lặp lại vòng lặp và nguồn gốc 4 chữ số có thể tạo ra 1000 số trước khi lặp lại. lặp lại vòng lặp Tạo ra 10.000 số, tuy nhiên nếu chúng ta sử dụng một hạt giống đủ lớn, các số trong dãy sẽ mở rộng thành hàng nghìn tỷ trước khi lặp lại.
Có một sự khác biệt quan trọng khác rất quan trọng, đó là khi bạn tạo các số giả ngẫu nhiên, sẽ có các chuỗi không thể tạo được.
Ví dụ: nếu Alice, người mã hóa, tạo ra một chuỗi thực sự ngẫu nhiên gồm 20 lần dịch chuyển, thì điều này sẽ tương đương với việc chọn ngẫu nhiên một chuỗi từ một ngăn xếp tất cả các chuỗi dịch chuyển có thể có, chứa 26 mũ 20 khả năng. nhân vật.
Nhưng nếu người mã hóa sử dụng hạt giống ngẫu nhiên gồm 4 chữ số để tạo chuỗi số giả ngẫu nhiên gồm 20 chữ số, anh ta chỉ có thể đưa ra lựa chọn chung như nhau trong số 10.000 kết quả có thể xảy ra, có nghĩa là cô ấy chỉ có thể tạo ra 10.000 chuỗi số khác nhau.
Khi chúng ta chuyển từ chuyển vị ngẫu nhiên sang chuyển vị giả ngẫu nhiên, điều đó tương đương với việc thu nhỏ không gian khóa thành không gian mầm tương đối nhỏ.
Khái niệm số giả ngẫu nhiên được đề xuất để người mã hóa và người nhận không cần chia sẻ trước toàn bộ chuỗi dịch chuyển ngẫu nhiên mà chỉ cần chia sẻ một hạt giống ngẫu nhiên tương đối ngắn, sau đó mở rộng nó thành cùng một chuỗi dường như ngẫu nhiên. khi cần.Có thể.
Nhưng nếu họ không bao giờ gặp nhau để chia sẻ hạt giống này thì sao? Đây là nội dung quan trọng nhất của công nghệ mã hóa hiện đại và là cốt lõi của mã hóa trong chuỗi khối mà chúng tôi sẽ tập trung trình bày trong bài viết tiếp theo.
