I was looking at some publications about the cryptographic algorithm BLAKE, which was one of the finalists of the SHA-3 competition, whose winner was Keccak .
Finally, in the specific section of the book "The Hash Function BLAKE", at the beginning, it says:
Keccak offers acceptable performance in software, and excellent performance in hardware.
Source 1 Source 2 (Original, by NIST)
NIST could just as easily have said that BLAKE offers excellent performance in software and acceptable performance in hardware; nowhere did NIST suggest that hardware is more important than software
My question was to search for how something can be fast on hardware and slow on software and mostly the other way around. All the sites I found talk about one such FPGA (and also ASIC), this is also present in the NIST text in the SHA-3 competition:
3.2 Performance
NIST was fortunate to have a great depth of performance data on the five finalists that could also be compared with the performance data of the SHA-2 algorithms. This data included software implementations in many different kinds of Central Processing Units (CPUs), and hardware implementations in both Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs). All this data made simple; most algorithms excelled on some platforms and lagged on others. However, a few patterns emerged from the performance data, which affected NIST's decision
We now know that there are CPUs, FPGAs, and ASICs. This has also been mentioned in other answers , which single thing I found in the OS in "An attacker with GPU or FPGA might want to do this, but will have difficulty. "
What is the difference between running a CPU and an FPGA? How can something be faster in software, CPU, than in an FPGA? What would be the difficulties of an FPGA being as fast as the CPU?