OpenSSL 算法性能测试_openssl性能测试-程序员宅基地

*本文为参考各方资料整理而成

1 OpenSSL简介

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。

2 OpenSSL安装

安装Openssl有诸多方式,既可以通过软件仓库,比如Fedora的yum命令或者Ubuntu的aptitude命令来安装,也可以从Openssl的网站上直接下载最新源代码,自己编译安装。

这里推荐的方式是自己下载Openssl的源代码来编译安装。原因在于,通过软件仓库发行的Openssl是一个阉割版本,有许多的特性,比如椭圆曲线在某些版本中默认没有包含进来。而自己下载源代码来安装则可以使用Openssl全部的特性。编译和安装的步骤在下载的源代码里的INSTALL文件里有详细的说明,并不复杂。最终用make install命令将编译好的可执行文件安装到系统中。如果安装后想删除的话,用make uninstall即可完整删除。

Step 1.安装ActivePerl

下载ActivePerl地址
根据系统以及位数下载安装文件 ↓ \downarrow 根据系统以及位数下载安装文件
下载的文件 ↓ \downarrow
下载的文件
开始安装 ↓ \downarrow
开始安装
版本说明
安装成功后,打开环境变量,path 已经写入,但是需要注销用户,或者重启
进入命令模式,进入perl安装目录下,输入perl -v 正确显示版本信息,执行“perlexample.pl”,若显示“Hellofrom ActivePerl!”,则说明Perl安装成功,可以使用Perl的相关命令来进行OpenSSL的安装。

Step 2.安装Microsoft Visual Studio

Step 3.安装NASM汇编工具

NASM
安装,并将其安装路径加入到到系统环境变量Path中.

Step 4.编译安装OpenSSL

下载OpenSSL
解压,在解压后的文件夹内找到安装帮助文件 ↓ \downarrow
在这里插入图片描述
根据帮助文件在openssl目录下输入编译指令 ↓ \downarrow 在这里插入图片描述
输入安装指令

nmake -f ms\ntdll.mak install

nmake -f ms\ntdll.mak test    #测试OpenSSL动态库
nmake -f ms\nt.mak test   #测试OpenSSL静态库
nmake -f ms\ntdll.mak install  #安装OpenSSL动态库
nmake -f ms\nt.mak install   #安装OpenSSL静态库
nmake -f ms\ntdll.mak clean   # 清除上次OpenSSL动态库的编译,以便重新编译
nmake -f ms\nt.mak clean   #清除上次OpenSSL静态库的编译,以便重新编译

Openssl自带的测试文档就是最好的示例,下载最新的Openssl源码并解压,test/ecdsatest.c就是最好的例子。

3 加解密算法能力测试

3.1 AES与RSA算法

AES: 最为常见的一种对称加密算法,对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。适用于传输过程。
优点

  1. 运算速度快,在有反馈模式、无反馈模式的软硬件中,都表现出非常好的性能。
  2. 对内存的需求非常低,适合于受限环境。
  3. AES 是一个分组迭代密码, 分组长度和密钥长度设计灵活。
  4. AES 标准支持可变分组长度,分组长度可设定为32 比特的任意倍数,最小值为128 比特,最大值为256 比特。

缺点: 需要进行密钥的协商和传输,存在密钥泄漏的问题

RSA: 是最常见的一种非对称加密算法,非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",它们两个必需配对使用,否则不能打开加密文件。适用于签名、认证。

优点

  1. 非对称加密算法使用公钥加密,私钥解密,私钥签名,公钥验签。安全性比对称加密高。
  2. 非对称加密使用两个密匙,服务端和客户端密匙不一样,私钥放在服务端,不用进行密钥交换,泄漏可能性较低,安全性高。

缺点:需要大数的乘幂求模等算法,运行速度慢。只适合对少量数据进行加密。

3.2 测试

openssl 的加密速度测试
通过 Perf 对 OpenSSL 中 RSA 加密解密进行性能分析
RSA+AES加解密的测试
OpenSSL命令—speed
openssl rsautl RSA实用工具
openssl的介绍和使用
C++: 基于OpenSSL的AES256加解密测试

4 参考资料

OpenSSL百度百科
Windows7(64位)环境下安装openssl详细步骤+图解
下载MASM32地址
OPENSSL(一)关于OPENSSL的安装
基于OpenSSL的AES256加解密测试
Openssl的安装
在window10 64位电脑上安装OpenSSL安装过程
详解Linux下安装OpenSSL安装图文方法
OpenSSL源码安装超详细教程
Win7系统下OpenSSL安装及测试
Windows安装配置C/C++(VS2017)OpenSSL开发环境配置教程
OpenSSL命令详解(一)——标准命令
OpenSSL 命令详解(二)——摘要算法、签名、验签
AES,RSA,IBE三种算法的比较
openssl编译方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45632433/article/details/100764514

智能推荐

GPT4、文心一言4、ChatGLM、Claude2.1四大语言模型生成效果对比_文心一言和chatglm-程序员宅基地

文章浏览阅读1.8k次,点赞24次,收藏27次。随着AIGC大风起,也掀起了语言模型大争之世,各种语言模型如雨后春笋,让大家眼花缭乱。周周都有新的选手入场,月月都有新的模型问世。不过其中最受人瞩目的当属GPT4、文心一言4、ChatGLM、Claude2.1四大模型。隐隐有傲视群雄之姿,今天我们也对这语言模型的四大天王的生成做一下粗浅的对比,也为大家在选择接入自家产品的时候有些许参考。_文心一言和chatglm

java/php/node.js/python基于微信小程序的音乐网站的设计与实现【2024年毕设】-程序员宅基地

文章浏览阅读236次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

基数排序算法-程序员宅基地

文章浏览阅读480次,点赞12次,收藏9次。基数排序

Uni-app 详情页 播放视频功能_uni.createvideocontext-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏20次。逻辑:1.课程详情页加载后,用token判断用户是否登录,登录状态则调用//查询课程是够有播放的权限的接口(只传入courseId),后端会返回hasAuth为true/false2.点击某一章节时,登录状态则调用//查询课程是够有播放的权限的接口(这次要传入courseId & chapterId),后端会返回hasAuth为true/false和videoId,如果这俩都有,则跳页面到视频播放页3.跳转到视频播放页,请求课程详情接口、视频播放接口(传入courseId & c_uni.createvideocontext

Nginx上传文件大小、超时限制_nignx webdav 文件大小-程序员宅基地

文章浏览阅读1.3w次。修改Nginx上传文件大小限制  我们使用ngnix做web server的时候,nginx对上传文件的大小有限制,默认是1M。  当超过大小的时候会报413(too large)错误。这个时候我们要修改nginx的参数client_max_body_size 20M; location / { ... client_max_body_size 100m; }..._nignx webdav 文件大小

InSAR形变监测方法与研究进展(朱建军,中南大学)_insar 冰川厚度-程序员宅基地

文章浏览阅读134次。(1)首先,InSAR监测变形原理和卫星数据来源(2)其次,InSAR形变监测方法分类(3)最后,讨论InSAR研究难点。_insar 冰川厚度

随便推点

gitlab搭建遇到的问题记录_[execute] fail: redis: runsv not running-程序员宅基地

文章浏览阅读5.5k次。1 镜像下载地址https://packages.gitlab.com/gitlab/gitlab-ce我目前使用的版本是:11.10.2版本13以后,把原始仓库路径默认都给变成了hash加密了,很难辨识出原始仓库,所以不选择13以上的版本。2 每次服务器断电后不能启动gitlab2.1 断电后启动gitlab报错fail: alertmanager: runsv not runningfail: gitaly: runsv not runningfail: gitlab-_[execute] fail: redis: runsv not running

C#常见错误—未将对象引用设置到对象的实例-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏8次。C#常见错误—“未将对象引用设置到对象的实例”的产生原因和解决方案。_未将对象引用设置到对象的实例

IAR for ARM 安装与注册(超详细)-程序员宅基地

文章浏览阅读1.3w次,点赞14次,收藏57次。IAR for ARM 安装与注册(超详细)一.使用软件 IAR for arm 8.3.21 以及注册软件链接:https://pan.baidu.com/s/1kihV0zkOdFx1OUZSJtbT9A提取码:0key二.软件安装1.打开安装包,选择安装2.点击“Next>”3.选择接受,再点击“Next>”,不接受不给你安装。霸道4.开发软件,建议安装在C盘,默认即可。安装在其他盘也可以注意不要有中文路径5.这里是烧录器的驱动安装,我们后面用到什么在安装什么6_iar for arm

黑马程序员_Java基础_IO流(四)_21_创建一个像文件date中写基本数据类型数据的流对象的语言为-程序员宅基地

文章浏览阅读540次。------- android培训、java培训、期待与您交流!---------- 导读:对象的序列化,管道流,RandomAccessFile,操作基本数据类型的流对象, ByteArrayStream,字符流的字符编码,编码解码,字符编码-联通,练习 1、IO流(对象的序列化)IO包中的其他类:操作对象,ObjectInputStream与ObjectOutputStre_创建一个像文件date中写基本数据类型数据的流对象的语言为

vue-cli中使用sass或者less_cli默认是less还是sass-程序员宅基地

文章浏览阅读2.1k次。什么是sass、less?他们有什么区别?请移步官网!这里仅仅记录一下如何使用开门见山。sass 创建好vue脚手架后,打开命令行安装sass:脚手架虽然有配置sass,配置在build/utils.js,但对应的loader未安装 ,请执行以下命令:npm install --save-dev node-sassnpm install --save-dev sass-loader在这里需..._cli默认是less还是sass

【IMX6ULL驱动开发学习】12.Linux驱动之设备树_正点原子linux开发板imx6ull 设备树-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏5次。(1)platform_driver 结构体添加 of_match_table 属性,添加 of_device_id 结构体,匹配设备树。(2)在 probe 函数中提取设备树中的引脚,提取设备树节点中的属性(of_property_read_u32等函数)后缀为 dtb 的是二进制的设备树文件,我们需要修改它,那么真正要操作的是其对应的 dts 文件,即。其他地方都不用修改,下次想添加外设时,直接修改设备树,然后修改 of_device_id 结构体即可。即可替换成新的设备树了,如何查看是否替换成功呢。_正点原子linux开发板imx6ull 设备树

推荐文章

热门文章

相关标签