Tuyên bố miễn trừ trách nhiệm: Tôi tạo phần mềm có xu hướng chạy trên các bộ xử lý dành cho thị trường đại chúng. Vì vậy, tôi không quen thuộc với loại thị trường ngách mà FPGA sẽ có ý nghĩa.
Rất khó để thiết kế một thuật toán mật mã. Thiết kế thứ gì đó hoạt động đúng chức năng thì dễ, nhưng thiết kế thứ gì đó an toàn thì khó — và nếu bạn không cần thứ gì đó an toàn, thì chẳng ích gì khi thực hiện bất kỳ mã hóa nào.Kết quả là, mật mã có xu hướng chỉ sử dụng một số lượng nhỏ các nguyên mẫu tiêu chuẩn. Điều này càng trở nên trầm trọng hơn bởi thực tế là một trong những trường hợp sử dụng mật mã lớn nhất là giao tiếp và điều này đòi hỏi tất cả các bên phải đồng ý về các thuật toán, do đó, một lần nữa tiêu chuẩn hóa xung quanh một số lượng nhỏ nguyên thủy.
Kết quả là, không có chỗ cho những người nguyên thủy thích hợp. Vì vậy, nếu thứ gì đó đáng để tăng tốc, thì nó thường đáng để thiết kế ASIC hoặc thậm chí mở rộng bộ xử lý đa năng. Ví dụ: khả năng tăng tốc AES khả dụng trên hầu hết các bộ xử lý cao cấp (x86, arm, â¦) và ngày càng nhiều bộ vi điều khiển. Điều này ngày càng đúng với SHA2. Tăng tốc mật mã khóa công khai ít phổ biến hơn, nhưng phổ biến trên một số thị trường như điện thoại thông minh và một số phân khúc thị trường vi điều khiển.
Tôi chỉ có thể nghĩ ra hai ứng dụng thích hợp trong đó các mạch chuyên dụng đáng giá. Một là công việc brute-force, dành cho các ứng dụng như bẻ khóa mật khẩu và khai thác tiền điện tử, thường sử dụng các nguyên mẫu tiêu chuẩn theo một cách rất cụ thể, nơi có thể thuận lợi để tạo một mạch chuyên dụng cho cách cụ thể đó. Đối với các ứng dụng này, tất cả CPU, GPU, ASIC và FPGA có sẵn đều đang chạy, tùy thuộc vào tính chất và khối lượng công việc. Một ứng dụng khác đang thử nghiệm các thuật toán mới hoặc các kỹ thuật triển khai mới. Đối với trường hợp sử dụng đó, FPGA chắc chắn đáng giá â sau đó bạn thiết kế một mạch chuyên dụng (hoặc không) dựa trên các quan sát được thực hiện trên FPGA.