APP下载

基于ECC及其改进加密算法的性能分析

2022-11-22李丹霞刘舒婷杨海珊

中国新通信 2022年16期
关键词:加密算法区块链性能

李丹霞 刘舒婷 杨海珊

摘要:为了探讨如何解决交易上链区块链网络时敏感数据的安全性及加密算法性能问题,主要对自主开发的通用加密组件中的ECC和ECC改进加密算法进行分析研究,并结合真实生产业务场景对两种算法实施性能实验,论证了ECC改进算法得性能优势,为通用组件的应用部署及全网推广提供支撑依据的同时,也为其它类型算法性能比对提供了测试方法和重要的性能分析数据。

关键词:区块链;加密算法;ECC;性能

一、 引言

区块链作为新一代价值互联网技术,正在以前所未有的速度扩展并影响着我们的生活,改变着当前的商业模式,是数字经济发展的关键新生力量,近年来,被越来越多的政府和企业青睐和使用,随着应用场景的不断擴展,隐私保护的要求也逐步凸显,比如:如何在公开透明的同时保护交易者的身份和交易的内容,为解决区块链的隐私保护问题,也涌现出像同态加密、零知识证明等一系列可以实现更广泛、更严格的隐私保护技术。

CMBaaS服务平台是中国移动的一个区块链网络项目,用来为公司内部提供区块链服务,主要应用于面向涉及多种角色参与的,多系统复杂流程交互的,有共识目标的,对安全性、数据一致性要求较高的业务场景。主要涉及各专业公司、31省公司等一对一、一对多、多对多等数据交互场景,为保障各交易用户的隐私信息安全性,在发起方进行交易上链前,会对交易敏感信息进行加密,落地方只能通过解密获取到与自己相关的链上数据,这样确保任何不相关的用户都无法从密文中读取到有用的信息,使交易相关用户可以在设定范围内读取有效数据,为用户隐私提供了更深层次的保障。为降低各区块链业务交易方重复开发加密工具的成本,加快交易上链速度和管理的标准化、统一化,研发了基于ECC、ECC联合AES的加密算法(后续简称为ECC改进算法)的通用组件,本文主要结合实际生产业务场景,针对此两种算法开展性能验证和结果分析,论证ECC改进算法的优势,为算法的应用推广和后续优化提供重要的支持依据和方向。

二、 算法简介

(一)AES 算法

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。所谓对称加密算法也就是加密和解密用相同的密钥,具体加解密流程如图1所示。

AES采用分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐的加密轮数也不同,具体如表1所示,本文主要针对AES-128进行分析。

(二) ECC算法

ECC(Elliptic Curves Cryptography)椭圆曲线加密算法是一种非对称加密算法,所谓非对称加密算法,就是加密和解密需要2个不同的密钥,如果用公开密钥对数据进行加密,只能用私有密钥进行解密,反之,如果用私有密钥进行加密,也只能用公开密钥进行解密。具体加解密流程见图二,本文验证的ECC加密算法密钥长度为256位,主要使用反射解决因美国出口限制,ECC算法的密钥长度不能超过128位的问题。

(三)ECC和AES联合加密算法

AES加密算法因加解密密钥相同,加密速度较快,适合经常发送数据的场合,但密钥传输比较麻烦,如果密钥泄露,存在安全风险,ECC加解密算法因加密和解密密钥不同,加解密速度相对比较慢,适合偶尔发送数据的场合,但密钥传输方便,安全性相对较高。综合两种算法的优缺点,本文加解密通用组件中,基于java语言实现了一种ECC改进加密算法,进行优劣互补,提升加密安全性和速度,具体流程如图3所示。

三、算法性能实验

本节主要介绍性能测试实验的实验环境、测试流程及测试指标计算方法。

(一)实验环境

实验设备:windows10操作系统的计算机;

设备配置:内存:6c*16G(内存);CPU:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz  2.59 GHz;

测试工具:eclipse、Jmeter5.4、jconsole;

测试对象:ECC算法、ECC改进算法。

(二) 实验流程

因区块链项目的特殊性,各交易上链方需对提交的交易数据进行签名操作,数据下载方下载数据后需要进行验签操作,不同业务上链场景的加解密算法主要限定在通用加解密组件中的ECC、ECC改进算法中选择。故本文主要对这两种算法的效率和CPU、内存资源消耗进行实验对比,为不同业务场景选择,提供支撑依据,不对其他未选定范围外的加解密算法进行对比实验。

本次性能测试实验主要采用ECC、ECC改进算法分别对单字段请求(大小为512B、1KB、2KB)、普通文件(大小为10KB、20KB、30KB)、超大文件(512KB、1MB)的明文数据进行多轮加解密运算,取平均处理时间作为最终的测试结果。

(三)算法运行效率和资源监控方法

本次实验运行效率主要利用Java中的System.currentTimeMillis将算法结束的计时与算法运行前的计时进行相减得到算法的运行时间。

Before = System.currentTimeMillis();//算法运行开始的计时

After = System.currentTimeMillis();//算法运行结束的计时

getHandletime(before,after);//算法运行时间

该计算方法的源码截图见图4和图5。

内存和CPU等资源利用率主要使用JDK自带的jconsole进行监控分析。

四、实验场景及性能结果分析

(一) 基线场景

基线场景主要是考虑在单线程的情况下,对2种算法性能表现做个横向比较,基于实际生产交易上链场景,需加密数据主要包含两种情况:单个请求多个字段的加密(所有字段的总大小不超过2KB)和文件加密(一个文件中包含多条记录,一般不超过20K,最大不超过1MB级别)。

基于此背景,设计三个基线场景(单字段加解密、普通文件加解密、超大文件加解密),对于单字段加解密,最大不超过2KB,此场景可通过512B、1KB、2KB的字段加解密处理时间体现性能;对于普通文件加解密,則是10KB、20KB、30KB;对于超大文件加解密则是512KB、1MB,具体性能指标数据如表2所示。

在无压力的情况下,不同业务场景的运行效率和内存资源占用见表2,同等数据大小下,ECC 改进算法的内存资源占用均低于ECC算法,当加密数据大小越大时,ECC改进算法运行效率优势越明显。

(二)负载场景

考虑到通用组件的业务支撑能力,将待加密明文数据大小统一设定为512B、不考虑并发的情况下,分别持续运行两种算法5分钟,预估全天可支撑加解密业务量,同时监控主机资源使用情况。具体运行效率和内存使用率如表3所示。

在此场景下,ECC改进算法5分钟加密处理总数107630笔,根据2-8原则,百分之80的业务在20%的时间内完成,预估ECC改进算法一天内(8小时)可支撑业务量D1=107630笔/5m×60m×8h×0.2%0.8=258万笔。ECC算法预估ECC单独加密算法一天内可支撑业务量D2=98315笔/5m×60m×8h×0.2%0.8=236万笔,即单日8小时内最大业务支撑量236万笔

同时,通过比对ECC改进算法与ECC算法的运行效率和内存占用率,ECC改进算法优于ECC算法。

(三)高并发场景

因生产环境中,存在部分区块链交易单位会集中到某个时间点集中进行交易上链,也就是存在瞬间进行大量的加解密调用,因此存在并发场景,需要进行并发性能瓶颈和比对验证。

以一定的梯度递增并发数,并监控系统资源使用情况,两种算法的运行效率和内存占用对比见图7。

根据图6数据分析,在不同并发压力情况下,ECC改进算法运行效率均明显优于ECC算法。根据图7数据分析,高并发下ECC改进算法的内存消耗与ECC算法相比,比较接近,优势不明显。在并发2万笔时,两种算法同时达到最大吞吐量,其中ECC改进算法最大吞吐量368.2笔/s,ECC算法363.5笔/s,详细数据见图8。

五、结束语

本文通过三种性能场景,分别对两种算法进行性能实验,从运行效率、内存占用、最大并发吞吐量等方面对两种算法进行横向对比,结果证明,在基线场景下,尤其在对大文件进行加密时,ECC改进算法加密效率优于ECC算法。

在负载场景下,ECC改进算法一天内支撑的最大业务量、平均运行效率和内存占用率也均优于ECC算法。在高并发情况下,同等并发条件下,ECC改进算法的运行效率明显优于ECC算法,但内存占用优势不明显,对于存在高并发的用户,可以采用内存可灵活扩展的部署方式,来进一步提升ECC改进算法,本研究成果为算法应用范围及其他算法性能比对提供了测试方法和重要的性能分析数据。

作者单位:李丹霞    刘舒婷    杨海珊    中移信息技术有限公司

作者简介

李丹霞(1986-),女,汉,河南省,硕士,研究方向:区块链技术、自动化测试技术等。

刘舒婷(1993-),女,汉,广东,学士,研究方向:测试开发技术。

参  考  文  献

[1]华为区块链技术开发团队.区块链技术及应用[M].北京:清华大学出版社,2019.

[2]TimeShatter.AES加密算法的详细介绍与实现[EB/OL]. [2017-02-19].https://blog.csdn.net/qq_28205153/article/details/55798628.

[3]邱德华.ECC算法原理[EB/OL].[2013-03-08].https://wenku.baidu.com/view/35f5b8dc3186bceb19e8bb3f.html

[4]张勇,刑长征.AES和ECC相结合的数据加密技术的研究[J].计算机安全,2007.

[5]李悦,李玮,曹艳勤,等.几种轻量级分组密码算法的性能分析[J].计算机应用与软件.2016.

[6]缪昌照,徐俊武. AES与ECC混合加密算法研究[J]. 软件导刊. 2016, 15(11):2.

猜你喜欢

加密算法区块链性能
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
基于小波变换和混沌映射的图像加密算法
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
用“区块链”助推中企走出去
强韧化PBT/PC共混物的制备与性能
Hill加密算法的改进
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能