Điểm:1

Thuật toán mã hóa dựa trên hàm băm này có hoạt động trên lý thuyết không?

lá cờ bf

Tôi chỉ nghĩ về điều này và dường như không thể tìm thấy bất cứ điều gì trên đó trực tuyến.

Vì vậy, ý tưởng tôi đã có là thế này:

Tạo một khóa ngẫu nhiên có độ dài nhất định. Sau đó, băm khóa này bằng SHA256 (hoặc thứ gì đó có tính bảo mật tương tự), rồi lặp qua từng byte của hàm băm và từng byte của văn bản, đồng thời thực hiện thao tác XOR với cả hai byte này, tạo ra một byte mới. Sau đó xâu chuỗi các byte mới này lại với nhau để tạo ra một văn bản mật mã. Điều này có thể dễ dàng đảo ngược nếu bạn biết chìa khóa.

Những câu hỏi của tôi:

Điều này có thể an toàn đến mức nào? Những ý kiến ​​khác? Tư vấn cải tiến hệ thống?

Cảm ơn!

kelalaka avatar
lá cờ in
Bạn đang trên đường tìm kiếm chế độ CTR tiêu chuẩn [1979](https://ee.stanford.edu/~hellman/publications/32.pdf). Chế độ CTR ban đầu được thiết kế cho PRF. Đặt $H$ là một hàm băm an toàn, sau đó $$H(k||bộ đếm_0) || F(k||bộ đếm_1) || \ldots || F(k||counter_m)$$ tạo một luồng an toàn để một người có thể x-hoặc mã hóa tin nhắn. Chúng cũng cung cấp [rất nhiều ưu điểm và một số nhược điểm](https://crypto.stackexchange.com/q/85571/18298)
Điểm:0
lá cờ cn

Điều này hoàn toàn tương đương với Vigenere với kích thước phím $256$ (và Khóa Vigenere sẽ là hàm băm của khóa của bạn). Sau đó, nó không an toàn chút nào.

Ví dụ: giả sử tôi biết 256 bit đầu tiên của tin nhắn của bạn. Sau đó, tôi có thể suy ra đầy đủ $h(k)$.

Và ngay cả tôi cũng không biết $k$, tôi có thể truy xuất toàn bộ tin nhắn.

Tất nhiên, nếu bạn nhắn tin là chính xác $256$ bit, bạn có bảo mật hoàn hảo (đó là miếng đệm dùng một lần).

theflamingtiger avatar
lá cờ bf
Điều này cũng sẽ áp dụng nếu tin nhắn nhỏ hơn 256 bit phải không?
Ievgeni avatar
lá cờ cn
Có, nhưng sau đó câu hỏi là về kích thước của khóa. Nếu nó lớn hơn 256, thì nó kém hiệu quả hơn so với bàn phím một lần, thì bạn phải chắc chắn rằng khóa của mình có đủ entropy. Khác, nó có thể bị cưỡng bức.
theflamingtiger avatar
lá cờ bf
Đây hoàn toàn là một tình huống lý thuyết: điều gì sẽ xảy ra nếu bạn đặt văn bản gốc vào một thứ gì đó giống như mã QR, và sau đó bạn thực hiện quy trình ban đầu trên các byte đó. Điều này có được coi là an toàn hơn không vì bây giờ mỗi byte không nhất thiết phải đại diện cho một byte trong bản rõ gốc?
Ievgeni avatar
lá cờ cn
Tôi không quá quen thuộc với mã QR. Nhưng nếu một đối thủ có một số rò rỉ về việc phân phối mã QR của bạn, họ có thể suy nghĩ rất nhiều. Ví dụ, bằng cách xo hai phần của 256 bit $c_1$, $c_2$, nó sẽ xóa hoàn toàn khóa và sau đó bạn suy ra $m_1 \oplus m_2$. Tôi không biết liệu đó có phải là dữ liệu nhạy cảm trong trường hợp của bạn hay không, nhưng nói chung, các kế hoạch như vậy được coi là không an toàn.
theflamingtiger avatar
lá cờ bf
Điều đó có rất nhiều ý nghĩa. Ok điều cuối cùng, điều gì sẽ xảy ra nếu có một cách để xáo trộn mã QR này theo cách được xác định bởi khóa/băm sao cho nếu không có khóa/băm mà ai đó đang cố giải mã thì sẽ không biết byte nào tương ứng với cái gì?
Ievgeni avatar
lá cờ cn
Tôi không biết. Tôi cho rằng nó phụ thuộc vào entropy của hoán vị.
Điểm:0
lá cờ ng

Có, điều này về cơ bản hoạt động (cho đến khi khắc phục các sự cố nhỏ). Một vấn đề đáng chú ý là hàm băm của bạn sẽ giống nhau mỗi lần, vì vậy bạn có thể khôi phục nó bằng cách sử dụng một cuộc tấn công bằng văn bản gốc đã biết, sau đó giả mạo thư một cách tự do.

Một vấn đề nhỏ khác là bạn chỉ có thể mã hóa tin nhắn miễn là độ dài đầu ra của hàm băm của bạn.

Cả hai vấn đề này đều có thể được khắc phục bằng cách lấy mẫu IV ngẫu nhiên, sau đó băm khóa IV|| thay vì khóa. Nếu bạn muốn mã hóa nhiều khối, hãy băm bằng hàm đầu ra có thể mở rộng hoặc băm IV||key, (IV+1)||key, v.v.

Cấu trúc này chỉ là chế độ bộ đếm (ngẫu nhiên), trong đó chúng tôi đang sử dụng hàm băm làm PRG. Vì hàm băm của chúng ta cần các thuộc tính giả ngẫu nhiên, nên điều này chỉ an toàn trong mô hình tiên tri ngẫu nhiên và hàm băm của chúng ta phải tốt như một tiên tri ngẫu nhiên.

theflamingtiger avatar
lá cờ bf
Bạn có ý nghĩa gì khi lấy mẫu IV ngẫu nhiên? Nếu nó là ngẫu nhiên thì không có nghĩa là người khác không thể giải mã nó sao?
Morrolan avatar
lá cờ ng
IV thường không bắt buộc phải bí mật, vì vậy người ta chỉ cần truyền nó cùng với bản mã.

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