2021SC@SDUSC——使用CUDA/GPU技术加速密码运算(一)

本文介绍了使用CUDA/GPU技术加速密码运算的预研项目,核心任务是通过GPU实现RSA、SM2等公钥算法。在GMSSL库中改进libgpucrypto,以提升加密效率。同时,详细记录了配置CUDA环境的过程,包括在Dell Inspiron 7591笔记本上尝试使用legecy U盘启动Linux和ventoy实现UEFI启动的步骤,最终通过Ventoy数据持久化插件成功实现环境配置。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

1.项目描述

这是一个某公司委托的预研项目。
该公司主要产品之一是基于硬件芯片的加密卡/加密机。考虑到虽然当前政策倾向于批准基于硬件的加密设备,但是下一步可能会放开其他类型的实现形式,比如使用GPU加速运算的加密设备和服务,因此要预研使用CUDA/GPU加速的密码运算技术。
工作计划是在GMSSL(一个开源的密码算法和SSL库以支持国产密码SM系列算法为特色)中,使用GPU实现RSA、SM2等公钥算法。RSA的GPU实现可以参考libgpucrypto(一个使用CUDA的RSA开源实现项目)。具体工作需要改进libgpucrypto项目,并把改进成果应用到GMSSL中去。
本项目可以锻炼GPGPU编程能力,加深对密码原理和技术的了解,成果可以用在企业安全、云虚拟安全等环境。
GPU硬件使用NVIDIA GTX系列显卡,提供校园网上的远程访问和使用环境。
注1:如果不熟悉C而惯于使用Java,则可以把GMSSL换成OpenJDK,参考使用JCUDA(一个Java bindings for CUDA的开源实现)等实现。
注2:如果想做GPU相关,但是不想做密码技术,可以改题目内容为使用GPU的机器学习和/或大数据处理等等。可行性、具体内容另外讨论。

2.核心任务

使用cuda加速rsa或ecdsa/sm2,核心是加速计算X^Y mod Z。然后把rsa或sm2中需要计算X^Y mod Z的地方调用GPU计算。

3.核心代码

我负责分析的部分:
1、rsa,sm2,ecc算法的数学基础
2、gmssl中的rsa和sm2算法
3、libgpucrypto中的rsa算法
4、libgpucrypto中的cuda快速幂取模算法
5、ecdsa、ecc算法

本项目队友韦潇负责分析的核心代码是:
1.CUDA中SHA、AES、RSA在CPU和GPU性能对比以及线索分析
2.CUDA GPU中SM2算法设计

4.环境配置

在环境配置的过程中走了不少弯路,把这个曲折的过程分享出来

4.1需要的环境

linux上的cuda环境

4.2我的硬件环境

dell inspiron 7591
win10系统
bios版本:1.6
显卡型号:gtx1650

4.3 legecy u盘启动linux(失败)

失败原因:我的电脑不支持legecy启动
4.3.1 在vmware上安装ubuntu
新建虚拟机 选择典型(自定义应该也可以,感觉区别不大)
在这里插入图片描述安装程序镜像文件
在这里插入图片描述在这里插入图片描述输入用户名密码
在这里插入图片描述虚拟机名称和位置
在这里插入图片描述分配磁盘空间
在这里插入图片描述
完成创建
在这里插入图片描述4.3.2将ubuntu安装在
启动ubuntu虚拟机
选择中文在这里插入图片描述
在这里插入图片描述

选择暂时不连接wifi,也可连接wifi
在这里插入图片描述选择安装第三方软件
在这里插入图片描述
选择其他选项
在这里插入图片描述进入到下面自行分区界面后,可根据U盘大小可分出哪个是需要安装ubuntu系统的U盘,把提前分好的4个分区逐一通过减号删除,再点击删除分区后腾出的空闲重新新建,按照下表格重新新建号分区类别和格式(注意,要删除一个新建一个,逐个逐个来)

分区名称 分区类别 格式 大小 作用
/ 主分区 ext4 尽量大一些,最好30G以上 根目录:用户存放个人资料,相当于D盘
/boot 主分区 ext4 建议1G以上 Linux的内核及引导系统程序所需要的文件
swap 逻辑分区 不需要 建议4G以上 运行内存
/home 逻辑分区 ext4 建议20G以上 系统盘:相当于C盘

在这里插入图片描述

修改后的分区
在这里插入图片描述安装启动引导器的设备选择需要安装系统的U盘,然后点击“现在安装”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值