Điểm:1

GHASH nhanh như thế nào và nó làm gì?

lá cờ tf
Tom

Tôi đọc ở đây:

https://www.researchgate.net/publication/220335697_GCM_GHASH_and_Weak_Keys

cách GHASH hoạt động. Vì vậy chúng tôi có $m$ khối 128-bit $X_{i}$ và chúng tôi tính toán trong $GF(2^{128})$:

$Y_{m} = \sum_{i=1}^{m} X_{i} \times H^{m-i+1}$

$H$ là một chìa khóa. Tôi có thấy ngay đó không $H$ được nâng lên sức mạnh? Có phương pháp nào để làm điều đó nhanh chóng trong $GF(2^{128})$ hoặc nó chỉ là modulo lũy thừa tiêu chuẩn với lũy thừa nhanh? Tôi nghĩ rằng có một phép nhân trong $GF(2^{128})$ trên một khối 128-bit, nhưng nếu $H$ được nâng lên sức mạnh, có nhiều hơn nữa.

Bản thân GHASH nhanh như thế nào so với AES? Ý tôi là nếu AES có thể đạt được $n$ chu kỳ trên mỗi byte, GHASH một mình nhanh như thế nào? Hiệu suất của GHASH có thể so sánh chỉ với một phép nhân trong $GF(2^{128})$ trên mỗi 128 bit của bản rõ hay nó phức tạp lắm?

forest avatar
lá cờ vn
Nó nhanh như thế nào phụ thuộc vào các tính năng phần cứng. Nó có thể thực sự nhanh nếu CPU có [`pclmulqdq`](https://www.felixcloutier.com/x86/pclmulqdq).
Tom avatar
lá cờ tf
Tom
@forest câu hỏi của tôi là về GHASH với pclmulqdq, vì ngày nay nó dường như là triển khai tiêu chuẩn của GCM. Tôi biết nó có thể nhanh, nhưng giả sử AES có thể đạt được 1 chu kỳ trên mỗi byte, thì GHASH mất bao nhiêu trong 1 chu kỳ trên mỗi byte này?
forest avatar
lá cờ vn
https://crypto.stackexchange.com/a/60109/54184 hiển thị các điểm chuẩn có và không có các tính năng tăng tốc phần cứng khác nhau cho cả GHASH và AES ở chế độ CTR. AES với khả năng tăng tốc phần cứng đầy đủ đạt được 5307,37 MB/s. GHASH với khả năng tăng tốc phần cứng đầy đủ đạt được 4795,76 MB/s.
lá cờ us
Bạn đánh giá đa thức bằng cách sử dụng [phương pháp của Horner](https://en.wikipedia.org/wiki/Horner%27s_method) -- một phép nhân và một phép cộng cho mỗi hệ số của đa thức.
Tom avatar
lá cờ tf
Tom
@forest cảm ơn, có một số so sánh thú vị.
Tom avatar
lá cờ tf
Tom
Nhân tiện, tôi có đúng không rằng nếu AES và GHASH có thể so sánh về hiệu suất, thì nếu chúng tôi kết hợp chúng ở chế độ GCM, thì tất cả hệ thống (AES-GCM) sẽ hoạt động với một nửa tốc độ mà một trong số chúng có thể đạt được?
kelalaka avatar
lá cờ in
Lưu ý rằng các hướng dẫn CPU hiện đại cho GHASH cũng vậy.
Maarten Bodewes avatar
lá cờ in
@Tom Không nhất thiết hoặc thậm chí có khả năng. Điều này có thể chỉ ra rằng số lượng chu kỳ CPU có thể so sánh được, nhưng trên CPU hiện đại, rất nhiều thời gian được sử dụng trong quá trình I/O - tải dữ liệu ở các cấp độ khác nhau của bộ đệm và thanh ghi CPU.
forest avatar
lá cờ vn
@Tom Các CPU hiện đại có các đường ống rất sâu và có thể thực thi hiệu quả nhiều lệnh cùng một lúc miễn là cả hai không yêu cầu sử dụng cùng một đơn vị thực thi (tức là chúng không gây ra xung đột cổng) và miễn là không có lệnh nào phụ thuộc vào lệnh kia đã hoàn thành đầu tiên. Cả AES-NI và CLMUL đều chạy trên các đơn vị thực thi khác nhau (tương ứng cổng 0 và cổng 5 trên Skylake, xem Bảng 11.1 trong [Tài liệu tối ưu hóa vi kiến ​​trúc CPU của Agner Fog](https://www.agner.org/optimize/microarchitecture.pdf) ), vì vậy chúng sẽ được thực thi đồng thời.
forest avatar
lá cờ vn
Để tham khảo, trên CPU máy chủ Ivy Bridge cũ có hỗ trợ cả AES-NI và CLMUL, AES 128-bit ở chế độ CTR là 3205 MB/s, chế độ GCM là 935,8 MB/s và GHASH thô là 1328 MB/s ( tất cả trên 16 khối KiB, được thử nghiệm với OpenSSL 1.1.1n). Bạn có thể thấy rằng nó phải được thực thi đồng thời.

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