Điểm:1

Luồng chính thay vì lịch trình chính

lá cờ tf
Tom

Hãy xem xét một mật mã khối trong chế độ CTR. Và hãy xem xét một PRNG có khóa hoặc chỉ một PRNG tốt với một hạt giống là khóa. PRNG phải rất nhanh.

Có nên loại bỏ lịch trình khóa và thực hiện lập lịch khóa "vô hạn" bằng cách tạo một dòng khóa không? Sau đó, mọi khối trong mật mã sẽ được mã hóa bằng một khóa khác.

Tất nhiên, ngay cả một PRNG nhanh cũng cần một thời gian để tạo ra một vài 128 -bit phím cho một mật mã. Nhưng điều này không làm tăng đáng kể tính bảo mật của một thuật toán như vậy sao? Nếu bản thân thuật toán là một nguyên thủy rất nhanh (giả sử nhanh như Chacha20), thì thuật toán đó phải có độ bảo mật tuyệt vời và tốc độ tốt nếu được kết hợp với "luồng lịch trình chính" như thế này.

Tuy nhiên, tôi nghi ngờ rằng tốc độ của một giải pháp như vậy có thể là một trở ngại đáng kể. Được rồi, vậy hãy thực hiện thay đổi mỗi khi thuật toán được lặp lại (mã hóa đơn lẻ)--chỉ lật một bit của khóa mỗi vòng. Nếu thuật toán yêu cầu một khóa mỗi vòng và có mười vòng, thì chúng ta chỉ cần mười bit. PRNG sẽ tạo ra các bit như vậy rất nhanh. Khi đó các khóa được thay đổi sau mỗi lần mã hóa, tuy không nhiều (chúng ta chỉ thay đổi một bit trong mỗi khóa) nhưng sẽ là một trở ngại rất lớn cho kẻ tấn công.

Có lẽ chúng ta có thể sử dụng thứ gì đó đơn giản chẳng hạn như hai vòng AES nhưng không thêm hai vòng nữa vào mật mã. Vì vậy, hãy sử dụng điều này để tạo ra một dòng khóa để trộn với các khóa trong một mã hóa mới.

Câu hỏi của tôi là về những bất lợi của một giải pháp như vậy. Theo như tôi biết, nó không được sử dụng - tại sao? Nói cách khác, tại sao chúng ta sử dụng các hằng số và các khóa giống nhau trong các vòng (khi mã hóa số lượng lớn thông điệp ) khi các khóa có thể được sửa đổi với chi phí thấp sau mỗi lần mã hóa; ví dụ: bằng cách thêm một bit mod 2 (sau một lần mã hóa khác, chúng tôi thêm một bit khác ở vị trí cao hơn, v.v., thay đổi tất cả các khóa 128 bit sau 128 lần mã hóa).

SAI Peregrinus avatar
lá cờ si
Chế độ CTR được sử dụng để biến mật mã khối thành mật mã dòng. Mật mã khối khá vô dụng đối với việc mã hóa (vì chúng có thể mã hóa một khối cho mỗi khóa một cách an toàn), vì vậy chúng tôi sử dụng các phương thức hoạt động khác nhau để thực sự mã hóa mọi thứ bằng chúng. Ngoài ra còn có các mật mã luồng riêng, PRNG được khóa hiệu quả, không có mật mã khối bên trong. Bạn đang đề xuất khóa nội bộ mật mã khối bằng mật mã luồng, sau đó sử dụng nó ở chế độ CTR để biến nó trở lại thành mật mã luồng. Tại sao không chỉ sử dụng mật mã dòng trực tiếp? Công trình của bạn sẽ có những lợi thế gì?
Tom avatar
lá cờ tf
Tom
Ưu điểm là mức độ bảo mật mật mã khối cao hơn.Hơn nữa, nếu chúng ta có thể xây dựng một cải tiến mật mã khối bằng công nghệ này - nhanh hơn và đồng thời an toàn hơn thuật toán ban đầu - thì tại sao lại không sử dụng nó? Nếu AES với các vòng rút ngắn nhưng khóa bằng mật mã luồng sẽ nhanh hơn, tại sao không làm điều đó? Có lẽ có những thuật toán có thể được cải thiện và tăng tốc theo cách này. Tôi nghĩ rằng có trình tạo khóa cơ bản, độc lập với mật mã có thể là một cải tiến lớn về mặt bảo mật.
SAI Peregrinus avatar
lá cờ si
Câu hỏi hàng đầu: Điều này có cải thiện bảo mật qua mật mã dòng không? ChaCha20 (được cho là) ​​an toàn hơn AES-256, với cùng kích thước khóa. Sử dụng ChaCha20 thay cho lịch trình khóa của AES sẽ loại bỏ điểm yếu của lịch trình khóa khiến AES yếu hơn, nhưng nó sẽ làm cho mật mã kết quả chậm hơn hoặc nhanh hơn và liệu nó có an toàn hơn ChaCha20 một cách có ý nghĩa không? Tại sao hoặc tại sao không (cố gắng chứng minh những điều này với chính mình)?
Tom avatar
lá cờ tf
Tom
Để quyết định xem có đáng hay không, chúng tôi phải cắt một vài vòng AES và thay thế chúng bằng cách truyền phát chính. Không, tôi không thể nói liệu nó có đáng không. Nhưng tôi nghi ngờ rằng chúng ta có thể nhận được mật mã nhanh hơn và an toàn hơn theo cách này. Tôi đã hỏi một câu hỏi để tìm hiểu xem đó rõ ràng là một ý tưởng tồi theo một cách nào đó. Tất nhiên bây giờ tôi không biết nó có thể thực hiện được với bất kỳ mật mã nào không. Nhưng thực tế là chúng tôi sử dụng các khóa "vĩnh viễn" trong mật mã quá phổ biến đối với tôi dường như không thể hiểu được theo quan điểm mà tôi đã trình bày.
SAI Peregrinus avatar
lá cờ si
Tiến độ chốt của AES RẤT nhanh. Nó không phải là một nút cổ chai cho AES. Thay thế nó bằng ChaCha20 sẽ làm mọi thứ chậm lại và *không thêm bảo mật ngoài những gì bạn nhận được từ mật mã luồng*. Ngay cả khi bạn giảm số vòng. Ngoài ra, chúng tôi hiếm khi (nếu có) sử dụng khóa vĩnh viễn.Hầu hết các khóa (ví dụ: đối với kết nối TLS) là tạm thời, chúng sẽ bị xóa ngay sau khi đóng kết nối. Tất nhiên, các khóa mã hóa ổ đĩa tồn tại lâu hơn, nhưng điều đó chủ yếu là do các ổ đĩa có nhiều dữ liệu và việc mã hóa lại nó sẽ chậm, chứ không phải do lập lịch trình khóa chậm (không phải vậy).
Maarten Bodewes avatar
lá cờ in
Chúng tôi đã có những câu hỏi khác về việc thay thế lịch trình chính bằng một thứ khác. Theo tôi, câu hỏi hiện tại có vấn đề sau: 1. bằng cách nào đó, bạn sử dụng một lịch trình khóa nhanh khác - bây giờ ** bạn phải chứng minh ** rằng điều này là an toàn hoặc 2.bạn sử dụng lịch khóa bảo mật đã biết, trong trường hợp đó **bạn phải cho thấy** lợi ích bảo mật so với việc sử dụng trực tiếp luồng khóa bảo mật.

Đă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.