Điểm:5

Bạn có thể sử dụng SHAKE256_XOF với XOR để tạo mật mã luồng không?

lá cờ mc

LẮC256_XOF là một hàm đầu ra có thể mở rộng dựa trên SHA3-512. SHAKE256_XOF có thể được sử dụng để tạo chuỗi bit có độ dài vô hạn với 256 bit bảo mật. Ví dụ:

từ Crypto.Hash.SHAKE256 nhập SHAKE256_XOF

lắc = SHAKE256_XOF()
shake.update(b'key' + b'nonce')

cho _ trong phạm vi (10):
    in(lắc.read(16).hex())
18068a140f4c0f1f85f17da13b049155
1fc6d25b11833480dae5fba50b8b73db
bf4284c0d9a32b9b374ae82d5c0514c6
...

SHAKE256_XOF là một hàm giả ngẫu nhiên nên XOR-ing đầu ra của nó với một bản rõ sẽ tạo ra một bản mã. Tôi hiểu rằng đây sẽ là một mật mã dòng không đối xứng. Tôi đang gặp khó khăn trong việc tìm kiếm nghiên cứu về vấn đề này ngoài việc nó đang được khả thi và Bruce Schneier nói "Tôi biết không có phân tích mật mã nào về các hàm băm một chiều cụ thể dưới dạng mật mã khối; hãy chờ phân tích như vậy trước khi bạn tin tưởng bất kỳ phân tích nào trong số chúng." Cuối cùng, mật mã này có thể được thực hiện chứng thực bởi SHA3-512 như một phần của hạt giống. Điều này dẫn đến thuật toán cuối cùng:

từ Crypto.Hash.SHAKE256 nhập SHAKE256_XOF
từ Crypto.Hash nhập SHA3_512

xor = lambda lhs, rhs: byte(a ^ b cho a, b trong zip(lhs, rhs))

bản rõ = b'bản rõ'
phím = b'key'
nonce = b'nonce'
digest = SHA3_512.new().update(plaintext).digest()

e_shake = SHAKE256_XOF().update(key + nonce + digest)
cipher_text = xor(e_shake.read(len(plaintext)), plaintext)

d_shake = SHAKE256_XOF().update(key + nonce + digest)
d_plaintext = xor(d_shake.read(len(cipher_text)), cipher_text)

in (d_plaintext)
  1. Có tài liệu nào về việc sử dụng SHAKE256_XOF làm mật mã không?
  2. Làm thế nào để phương pháp này so sánh với AES256 về bảo mật?
  3. Có những điểm yếu hoặc bất lợi của mật mã này là gì? Rõ ràng, việc sử dụng SHA3-512 để làm cho nó được xác thực có nghĩa là nó không thể được mã hóa hiệu quả trong một lần và việc giải mã yêu cầu tính toán thông báo SHA3-512 để xác thực (Tôi đang tìm hiểu cách hoạt động của mã hóa được xác thực nên các đề xuất và phản hồi đều được hoan nghênh) .
  4. Nó có cung cấp bất kỳ lợi thế nào có thể có so với AES256 không?
  5. AES256 có khả năng chống lại 128-bit lý thuyết các cuộc tấn công lượng tử. Mật mã này sẽ duy trì tối thiểu(key_length/2, 256) các bit chống lại các cuộc tấn công lượng tử lý thuyết mà SHAKE256_XOF .
Điểm:7
lá cờ vu

Trong phần 3.2 "Các phương thức sử dụng chức năng miếng bọt biển" của Chức năng miếng bọt biển mật mã (viết tắt của CSF cho mục đích của câu trả lời này), các tác giả đã liệt kê một số "chế độ hoạt động" cho các mục đích khác nhau, với các ứng dụng mật mã dòng là một trong số đó. Đây là bảng:

chức năng Sự biểu lộ Đầu vào đầu ra
$n$hàm băm -bit $h = H(M)$ $M$ $\lsàn Z \rsàn _n$
$n$hàm băm ngẫu nhiên -bit $h = H_R(M)$ $R|M$ $\lsàn Z \rsàn _n$
$n$phân biệt cá thể hàm băm -bit $h = H_D(M)$ $D|M$ $\lsàn Z \rsàn _n$
Chậm $n$-bit chức năng một chiều $h = H_{\text{slow}}(M)$ $M|0^N$ $\lsàn Z \rsàn _n$
$n$-bit chức năng MAC $T = MAC(K,[IV,]M)$ $K|IV|M$ $\lsàn Z \rsàn _n$
Mật mã luồng truy cập ngẫu nhiên ($n$khối -bit) $z_i = F(K,IV,i)$ $K|IV|i$ $\lsàn Z \rsàn _n$
Dòng mật mã $Z=F(K,IV)$ $K|IV$ như là
Trình tạo bit ngẫu nhiên xác định (DRBG) $z=DRBG(hạt giống)$ hạt giống như là
Chức năng tạo mặt nạ và dẫn xuất khóa $mask=F(hạt,l)$ hạt giống $\lsàn Z \rsàn _l$

Có tài liệu nào về việc sử dụng SHAKE256_XOF làm mật mã không?

Vâng, bài báo đã có bạn bảo hiểm.

Làm thế nào để phương pháp này so sánh với AES256 về bảo mật?

Phương pháp này có sức mạnh tương đương về lực lượng tàn bạo. mật mã luồng SHAKE sẽ có thể có chu kỳ dài hơn AES-256 ở chế độ bộ đếm (CTR) hoặc chế độ phản hồi mật mã (CFB).

Có những điểm yếu hoặc bất lợi của mật mã này là gì? Rõ ràng, việc sử dụng SHA3-512 để làm cho nó được xác thực có nghĩa là nó không thể được mã hóa hiệu quả trong một lần và việc giải mã yêu cầu tính toán thông báo SHA3-512 để xác thực (Tôi đang tìm hiểu cách thức hoạt động của mã hóa được xác thực để đề xuất và phản hồi được hoan nghênh).

Trên thực tế, nếu bạn xem các chế độ "song công" (mà tài liệu CSF cũng đề cập đến), AEAD thực sự dễ thực hiện hơn trong một lần.

Nó có cung cấp bất kỳ lợi thế nào có thể có so với AES256 không?

Tôi đã đề cập đến 2 (độ dài thời gian, 1 lượt). Nó cũng có khả năng mở rộng tham số tốt hơn so với mật mã khối có độ rộng cố định, vì vậy tôi tính đây là thứ 3.

AES256 có khả năng chống lại các cuộc tấn công lượng tử theo lý thuyết là 128-bit. Mật mã này sẽ duy trì tối thiểu(key_length/2, 256) các bit chống lại các cuộc tấn công lượng tử lý thuyết mà SHAKE256_XOF có.

Có thể, nhưng tôi không giỏi toán lắm.

forest avatar
lá cờ vn
XOF thực sự rất linh hoạ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.