Trong khi bạn không đề cập đến nguồn, ở đây một. Trên thực tế, gia đình XSalsa được mô tả trong bài báo của Bernstein;
Có phải "X" trong XSalsa20Poly1305 chỉ có nghĩa là một nonce 192 bit không?
Có, điều đó có nghĩa là kích thước nonce của XSalsa là 192-bit trong khi Salsa có 64-bit. Điều này lớn đến mức ngay cả đối với các nonce ngẫu nhiên, người ta phải tạo $2^{96}$ nonce thống nhất để xảy ra va chạm với xác suất 50%. Điều này rất quan trọng trong các khóa dài hạn. Nếu một cặp (key,nonce) được khởi động lại thì tính bí mật sẽ bị mất. 192-bit ngăn chặn điều này. Đây là một sự kiện gần như không bao giờ xảy ra đối với Mật mã học.
Có lợi thế đáng kể nào khi sử dụng XSalsa20Poly1305 không?
- Một trong những rõ ràng là nonces dài.
- một cái khác là Poly1305 là trình xác thực tốt hơn GCM.
- Nó có hiệu suất CPU rất tốt nhờ thiết kế ARX, đánh bại AES trong CPU thô và thậm chí nó có thể cạnh tranh với AES-NI.
so sánh OpenSSL (ChaCha không phải Salsa);
loại |
16 byte |
64 byte |
256 byte |
1024 byte |
8192 byte |
16384 byte |
chacha20 |
361334.62k |
665775.85k |
1334323.20k |
2750173.87k |
2945690.28k |
2972353.50k |
aes-128-ctr NI |
525049.40k |
1867614.12k |
3840132.18k |
5231174.31k |
5816388.27k |
5875471.70k |
aes-128-ctr |
190707.84k |
228983.55k |
236486.66k |
243153.92k |
242283.86k |
242614.27k |
Ngoài ra, lưu ý rằng trong bài báo Bernstein đã cung cấp bằng chứng bảo mật; nếu Salsa20 an toàn thì XSalsa cũng vậy.
Người ta đã chứng minh rằng 15 vòng của Salsa20 an toàn trước các cuộc tấn công khác biệt.
Lưu ý rằng có một biến thể mới của gia đình Salsa; gia đình Cha Cha. Gia đình ChaCha nhằm mục đích tăng độ khuếch tán mỗi vòng với tốc độ gần như giống nhau. Họ ChaCha được điều chỉnh nhiều hơn họ Salsa, TLS 1.3 sử dụng ChaCha20-Pol1305.
ChaCha20 cũng có XChaCha20-Poly1305 (dự thảo ietf) sử dụng cùng kích thước nonce 192-bit. Tốt hơn là XSalsa20-Poly1305. Lưu ý rằng họ ChaCha ít được nghiên cứu hơn họ Salsa do Salsa được đại diện trong dự án eSTREAM.
Ưu tiên XChaCha20-Poly1305 nếu có thể.
Lưu ý rằng Mã hóa được xác thực là bắt buộc khi truyền, dữ liệu được khuyến khích cho phần còn lại.