鲲鹏芯片支持国密算法加速,硬件实现SM2/3/4国密算法加解密。本章节主要介绍如何在机密虚机内使能鲲鹏芯片国密硬件加速功能。
在未导入License的情况下,Kunpeng accelerator SEC Function、Kunpeng accelerator HPRE Function、Kunpeng accelerator RDE Function、Kunpeng accelerator ZIP Function均处于“已关闭”状态。如果需要申请TEE License,请联系华为业务负责人申请。
成功导入KAE License后,KAE相关特性处于“已开启”状态,并显示对应截止日期。
make Image -j64
请参见启动虚机,在已启动的虚机的xml文件中作如下修改。
将<qemu:arg value='tmm-guest,id=tmm0,sve-vector-length=128,num-pmu-counters=1'/>修改为<qemu:arg value='tmm-guest,id=tmm0,sve-vector-length=128,num-pmu-counters=1,kae=4'/>
其中kae=4中的“4”表示通入机密虚机中VF数量,支持在[0,11]中取值。单个虚机最多支持通入11组VF,每个物理机最多支持通入虚拟机48组VF。
git clone https://gitee.com/openeuler/virtCCA_driver.git
cd virtCCA_driver && make
cd kae_driver scp hisi_plat_qm.ko root@192.168.47.1:/home/run scp hisi_plat_sec.ko root@192.168.47.1:/home/run scp hisi_plat_hpre.ko root@192.168.47.1:/home/run
192.168.47.1仅为虚机示例IP,使用时请按照实际IP操作。
执行此步骤前须确保uacce.ko已成功加载。
insmod hisi_plat_qm.ko insmod hisi_plat_sec.ko insmod hisi_plat_hpre.ko
ll /sys/class/uacce/
yum install gcc make kernel-devel libtool numactl-devel openssl-devel chrpath
OpenSSL支持版本为1.1.1以上,通过yum安装openssl-devel即可。如果测试SM2算法需要指定OpenSSL的版本为1.1.1。
git clone -b v2.0.3 https://gitee.com/kunpengcompute/KAE.git
目前v2.0.3版本的kae不支持切换OpenSSL版本,如果需要切换OpenSSL版本请手动拉取kae最新代码。
git clone -b kae2 https://gitee.com/kunpengcompute/KAE.git
sh build.sh uadk sh build.sh engine
sh KAE/KAEOpensslEngine/test/perf_test/openssl_perf.sh
如果需要测试SM2算法,需要执行如下命令修改测试脚本来指定包长。
vim KAE/KAEOpensslEngine/test/perf_test/openssl_perf.sh
SPEED=`taskset -c 0-63 $EXE speed -engine $ENGINE_NAME -elapsed -multi $MULTT I $ALG | tail -n 1 ` #hard
修改为
SPEED=`taskset -c 0-63 $EXE speed -engine $ENGINE_NAME -elapsed -bytes 512 -multi $MULTT I $ALG | tail -n 1 ` #hard