Điểm:1

Có thể tính độ dài bản rõ của bản mã được mã hóa RC5-32 không?

lá cờ sz

Việc tính toán kích thước được mã hóa RC5 của bất kỳ dữ liệu nào cũng đơn giản như làm tròn độ dài của văn bản gốc thành bội số gần nhất của 8. Điều tôi băn khoăn là liệu điều này có thể được thực hiện theo hướng khác hay không, để có được độ dài của dữ liệu văn bản gốc đã cho bản mã.Rõ ràng thông tin này không được tiết lộ cho đến khi quá trình giải mã thực sự diễn ra, nhưng liệu nó có thể được theo dõi/tính toán không suốt trong quá trình giải mã?

tôi đang làm việc với cái này triển khai giải mã RC-5 (nhị phân C++ dịch ngược, triển khai lại trong C#), giải mã dữ liệu theo nhóm 4 byte và sao chép kết quả vào bộ đệm đầu ra. Vấn đề là, có rất nhiều rác trong bộ đệm đầu ra sau khi kết thúc dữ liệu được giải mã, vì vậy thật khó để xác định nơi dữ liệu thực sự kết thúc. Thật dễ dàng nếu văn bản gốc là một chuỗi kết thúc null, nhưng tôi đang tìm kiếm một giải pháp chung hơn có thể hoạt động trên dữ liệu nhị phân tùy ý.

Điểm:2
lá cờ my

Điều tôi băn khoăn là liệu điều này có thể được thực hiện theo hướng khác hay không, để có được độ dài của dữ liệu văn bản gốc ban đầu cho bản mã.

RC5 là một mật mã khối; những gì bạn đang hỏi là về chế độ mật mã khối (và phần đệm mà việc triển khai đó sử dụng); không có đủ thông tin để trả lời câu hỏi cụ thể của bạn; tuy nhiên tôi có một phỏng đoán.

"Mật mã khối" là một biến đổi không thể đảo ngược từ một chuỗi bit n bit (trong trường hợp này, $n=64$) thành chuỗi bit n bit. Cái mà "chế độ mật mã khối" thực hiện là "mật mã khối" và sử dụng nó theo cách để thực hiện một hoạt động hữu ích hơn, chẳng hạn như mã hóa một bản rõ có độ dài tùy ý.

Bây giờ, nhìn lướt qua mã, có vẻ như mã sử dụng "chế độ ECB" để mã hóa chuỗi (nói chung là một lựa chọn tồi - tất nhiên, đó không phải là vấn đề của bạn). Với "chế độ ECB", bản thân chế độ này chỉ có thể xử lý các bản rõ có độ dài là bội số của độ dài khối (trong trường hợp này là 16 byte). Bởi vì chúng tôi thường muốn xử lý các văn bản gốc có độ dài tùy ý, những gì chúng tôi làm là thêm "phần đệm", nghĩa là, một số nội dung bổ sung ở cuối để làm cho độ dài là bội số của 16 byte (khi đó chế độ có thể xử lý).

Phần đệm này được thiết kế theo cách giúp việc loại bỏ phần đệm tại thời điểm giải mã trở nên dễ dàng - tuy nhiên, có một số khả năng và mã giải mã bạn cung cấp không cho chúng tôi biết mã nào đang được sử dụng. Trong chế độ phổ biến nhất, byte cuối cùng được sử dụng để biểu thị số lượng byte đệm đã được thêm vào - bạn có thể muốn xem liệu đó có phải là trường hợp trong các ví dụ của mình không.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.