Почему между frodo640aes и frodo640shake большая разница во времени?
Я установил алгоритм подписи на dilithium2 и KEX как frodo640aes и frodo640shake, соответственно, и провел эксперимент, чтобы измерить время, необходимое для рукопожатия. Кроме того, я установил алгоритм подписи для falcon512 и KEX как frodo640aes и frodo640shake, соответственно, и провел эксперимент, чтобы измерить время, необходимое для рукопожатия. Измерение времени составило в среднем 1000 рукопожатий. В дилитии2 frodo640aes дал 12,397 миллисекунды, а frodo640shake дал 25,344 миллисекунды. Но в falcon512 frodo640aes дал 15,692 мс, а frodo640shake дал 17,395. Я думаю, что эти две тенденции должны быть похожи, но я не знаю, почему они проявились так по-разному.
Команда, используемая для открытия сервера
apps/openssl s_server -cert dilithium2_CA.crt -key dilithium2_CA.key -www -tls1_3
Сценарий оболочки, используемый для запроса подтверждения
#!/bin/bash
beginTime=$(date +%s%N)
for((i=0;i<1000;i=i+1))
do
echo "Q" | apps/openssl s_client -curves $1 -CAfile $2_CA.crt -connect 165.246.44.146
done
endTime=$(date +%s%N)
elapsed=`echo "($endTime - $beginTime) / 1000" | bc`
elapsedSec=`echo "scale=3;$elapsed/1000" | bc | awk '{printf "%.3f", $1}'`
echo ${KEX_array[$i]} $1 $elapsedSec millisecond
Команда, выполняющая сценарий оболочки
./one_time.sh frodo640shake dilithium2