Tất cả các sơ đồ chữ ký lượng tử sau này được các tác giả tuyên bố là có khả năng chống lại các cuộc tấn công kênh bên một cách tự nhiên. Câu hỏi của tôi là, tại sao hoặc như thế nào?
Chà, hãy phá vỡ điều này:
- Về thời gian và các kênh phụ dựa trên bộ đệm, việc triển khai rõ ràng là khá tốt (ngoại lệ: bộ tham số dựa trên Haraka của Sphincs+)
Đây là lý do: việc triển khai tự nhiên các hàm SHA-256 và SHAKE dựa trên các hướng dẫn có thời gian không đổi trên các bộ xử lý hiện đại (hoạt động logic, bổ sung mô-đun, dịch chuyển/xoay theo số lượng không đổi) và không thực hiện truy cập bộ nhớ hoặc dữ liệu phụ thuộc vào dữ liệu -các nhánh phụ thuộc (ngoại trừ những nhánh dựa trên độ dài thư - thông báo có độ dài thay đổi duy nhất có liên quan là hàm băm thư ban đầu và chúng tôi không coi thư được ký là bí mật). Ngoài ra, việc triển khai tự nhiên cơ sở hạ tầng HBS (ví dụ:chuỗi Winternitz hoặc tính toán cây Merkle) cũng không có các nhánh hoặc quyền truy cập bộ nhớ dựa trên bí mật (nó liên quan đến các nhánh có điều kiện, tuy nhiên những điều kiện đó luôn là chức năng của thông báo hoặc giá trị chúng ta đặt vào chữ ký; nghĩa là, giá trị mà đối phương dù sao cũng sẽ biết).
Do đó, các kênh bên dựa trên thời gian và bộ nhớ cache không mang lại bất kỳ giá trị nào mà kẻ tấn công chưa biết (tất nhiên, giả sử rằng việc triển khai không cố tình làm rò rỉ).
- Về sức mạnh hoặc các cuộc tấn công kênh bên kiểu EMF, câu chuyện không rõ ràng lắm.
Hầu hết các giá trị bên trong (ví dụ: các nút bên trong cây Merkle) không thực sự bí mật. Ngoài ra, một cuộc tấn công sức mạnh/EMF (giả sử chữ ký không mạnh đến mức một dấu vết duy nhất là đủ - với các hoạt động đối xứng mà chúng ta đang nói đến, chúng thường không) yêu cầu sử dụng cùng một giá trị bí mật trong một số khác nhau bối cảnh; do đó, các giá trị trước đó trong chuỗi Winternitz cũng khó bị tấn công (vì các giá trị đó chỉ được sử dụng một lần).
Thứ có thể bị tấn công là chức năng được sử dụng để tạo các giá trị ban đầu cho chuỗi Winternitz (và cho Sphincs+ lá FORS). Điều thường được thực hiện trong cả ba (và được ủy quyền chính thức bởi Sphincs+) là sử dụng cùng một hạt giống tĩnh (với các tham số bổ sung khác nhau) để tạo trực tiếp các giá trị này - đó chính xác là điều mà một cuộc tấn công DPA sẽ cần (và tất nhiên, một khi kẻ tấn công phục hồi điều đó, trò chơi kết thúc). Tài liệu vòng 3 Sphincs+ gợi ý rằng bạn có thể sử dụng triển khai hàm băm kháng DPA trong trường hợp đó.
Bây giờ, có thể làm lại logic tạo giá trị ban đầu để nó không thể bị tấn công theo cách này (ví dụ: bằng cách tạo các giá trị đó dưới dạng lá từ cây nhị phân lớn, sao cho bất kỳ giá trị nút bên trong nào chỉ được sử dụng trong hai ngữ cảnh) . Tuy nhiên, không có phương pháp nào được đề xuất chính thức cho bất kỳ phương pháp nào trong số ba phương pháp này.