APP下载

基于国密算法SM2和信息溯源的电子收据系统

2020-09-10熊刚熊长聪

看世界·学术下半月 2020年3期
关键词:移动支付

熊刚 熊长聪

摘要:随着移动终端与计算机网络技术的迅猛发展,带动着移动支付逐渐迈向成熟。以支付宝、微信钱包为代表的移动支付方式,在生活中占据着重要位置。但是,我们在享受移动支付带给便捷的同时,大部分行业仍然在使用传统的纸质收据和发票,并且带来了一系列的资源浪费问题和个人信息安全问题。在此背景下,本文设计了一种基于SM2和区块链的移动支付电子收据系统。系统主要由PC端、服务器端和客户端三部分组成。PC端生成电子账单,发票二维码,并添加用户的标识信息,使用公钥加密算法SM2先签名、后加密,再发送给服务器端;服务器对账单身份认证和发票二维码解密后,添加相关标识信息并使用私钥进行数字签名,然后将账单和电子发票储存在云端数据库;客户端可随时查看数据库中的加密账单和电子发票,经过认证和解密后得到详尽的账单信息,解密发票二维码生成电子发票;同时加入区块链技术,可以使消费者了解商品从生产、加工、运输、销售到消费者手中,使整個过程透明化。整个系统可以大幅度提高电子支付的效率,使移动支付更加安全、便捷,同时也便于商家和个人的查询,使得商家交税、个人报销的快捷化。

关键词:移动支付;数字签名机制;电子账单

一、概述

近年来,随着互联网以及移动终端技术的发展,移动支付得到普及。以微信钱包、支付宝为代表的移动支付的发展,已渗透到了生活的方方面面,然而在享受移动支付便捷的同时,大部分行业却仍在使用传统的纸质收据,带来许多不好的影响[1]。纸质收据含有BPA的致癌物质,影响身体健康;无法回收,浪费资源,污染环境;容易丢失损坏,不利长时间保存;存在泄露个人信息等缺陷和不足[2]。因此,设计一款电子收据系统对人们特别重要的具有实际意义。

将移动支付技术与电子收据融合在一起,组合成一种高效的、实用的系统可以给人们带来许许多多的好处[3]。其一是电子收据的快捷高效,省去了纸质收据打印的时间,提高了工作效率;其二是电子收据不用再担心收据易损坏,易丢失,纸质收据信息泄露;其三是国密算法SM2提供了可靠的信息安全支撑[4],也为双方可能产生的纠纷提供了仲裁的方便等等。基于此,本文设计了一种基于SM2和区块链的移动支付电子收据系统。系统主要由PC端、服务器端和客户端三部分组成。PC端生成电子账单,发票二维码,并添加用户的标识信息,使用公钥加密算法SM2先签名、后加密,再发送给服务器端;服务器对账单身份认证和发票二维码解密后,添加相关标识信息并使用私钥进行数字签名,然后将账单和电子发票储存在云端数据库;客户端可随时查看数据库中的加密账单和电子发票,经过认证和解密后得到详尽的账单信息,解密发票二维码生成电子发票;同时加入区块链技术,可以使消费者了解商品从生产、加工、运输、销售到消费者手中,使整个过程透明化。整个系统可以大幅度提高电子支付的效率,使移动支付更加安全、便捷,同时也便于商家和个人的查询,使得商家交税、个人报销的快捷化。

二、基于国密算法SM2和信息溯源的电子收据系统

(一)系统总体方案设计

移动支付电子收据系统由PC端,服务器端,客户端三个模块组成。

(1)PC端功能

PC端由联网PC机和扫描器(扫描包含条形码、二维码)组成。主要完成购买商品的扫描和数据录入,统计相关商品的购买信息并保存于本地数据库,同时开具电子发票,便于报税,并将电子发票通过加密生成二维码,和信息签名、加密送到服务器中。

■ 生成发票二维码

■ 生成电子账单

■ 签名电子账单

■ 加密电子账单

■ 结算收款

(2)服务器端功能

服务器采用的个人服务器+腾讯云存储的混合模型,具有强大的数据计算处理能力和网络收发能力。主要负责对PC端发送的加密账单进行身份认证和数字签名,同时整合数据信息,全面统计分析,并负责电子账单系统的权限管理。同时,将收到的发票二维码解密成电子发票存储起来,并将发票二维码发送给客户端。此外,服务器还设立仲裁认证模块,当消费产生纠纷时,可对账单信息作出仲裁,维护双方的合法利益。

■ 验证电子账单签名

■ 处理公钥请求响应

■ 处理发票二维码

■ 存储加密账单

■ 提供仲裁服务

■ 加密传输

(3)客户端功能

客户端即移动支付终端,主要实现电子账单的生成和查询功能,以可视化的形式清晰展示消费记录,并提供加密上传服务器,为用户提供全方位的消费跟踪记录、建议提示、统计分类、消费指南。同时,将接收的发票二维码解密生成电子发票,并存储在本地,便于报销。

■ 解密账单密文

■ 自动分类处理账单

■ 账单信息可视化

■ 申请账单认证

■ 生成电子发票

■ 二维码支付

(二) SM2算法应用

在公共网络中传输电子账单,账单信息必须是不可抵赖的、不可仿冒的,才能保证安全,因此系统需要添加数据加密机制和数字签名算法[5]。若本系统采用对称加密方式,将对密钥管理带来极大的威胁,而且安全性相对较弱,容易被有心人破解,达不到系统设计的目的。所以综合各类算法,本系统决定采用基于SM2的公钥密码体制算法。选择SM2作为系统的加密方案,主要是考虑到它的实用性,能够满足本系统加密和数字签名的双重要求,无需再选择其他签名算法,且安全性强。在整个系统中,我们采用的关键参数如表所示:

(三)密钥存储管理方案

密钥存储管理是密码技术中的重要环节,本系统密钥包括私钥存储管理和公钥存储管理,在系统的三个模块中均涉及到密钥的存储管理,任何模块出现问题,都可能带来损失[6]。对于服务器产生公/私钥对,每个客户端/PC端都可以请求获得服务器的公钥。PC端/客户端产生的公钥通过网络同步到服务器,以便其他用户访问获取用于加密。私钥是通过加密存储在本地的,任何网络请求都不能访问到其私钥。用户可以更新其密钥对,但是更新之后必须同步达到服务器,以便向其他用户提供自己的最新的公钥。

(四)数字签名方案

数字签名在身份认证、数据完整性、不可否认性以及匿名性等方面有重要的作用。在本系统中主要是对账单信息进行签名,以确保账单的完整性、不可否认性,保证商家和消费者的合法利益不受损害[7]。签名时使用到了各自的私钥,因此电子账单也具有相应的法律效力。本系统采用的是一种基于公钥密码体制的仲裁方式数字签名方案。

具体过程如下:

①商家X在电脑端扫描商品后,生成账单消息M。使用PC端X的私钥KSX,使用公钥加密算法SM2加密消息得到密文SM2KSX(M)。

②对第①步产生的密文进一步使用SM2算法加密,使用的是Y的公钥KPY。这样账单明文就经过了双层加密SM2KPY(SM2Ksx(M)),形成了一个带有签名、保密的消息。

③商家X将该信息以及自己的身份标志IDx一起用KSX签名得到SM2KSX(IDX||SM2KPY(SM2KSX(M)))。

④商家X将该消息和自己的身份标志IDx一起发送给服务器A:

X—>A:IDx||SM2KSX(IDX||SM2KPY(SM2KSX(M)))

⑤服務器A收到商家X的消息后,使用和商家X公钥KPX解密接收到的签名,判断解密的IDX和消息中的IDX是否相等。由于这里服务器处理的是经过客户端Y公钥KPY加密的消息,而且服务器不知道Y的私钥KSY,因此服务器只能验证消息的密文而不能获取到具体内容。从而保证的机密性。

⑥如果通过第⑤步的验证,服务器保存消息到数据库。同时服务器A将从X收到的所有内容IDX||SM2KPY(SM2KSX(M)加上一个时间戳T,然后使用服务器A的私钥KSA加密消息后发送给Y:

A—>Y:SM2KSA[IDX||SM2KPY(SM2KSX(M)||T]

其中时间戳T用于向Y表示所发送的消息是即时的而非重放的。

⑦客户端Y收到服务器A发送来的经过验证的消息之后。使用A的公钥KPA解密得到IDX、SM2KPY(SM2KSX(M))、T。

⑧使用自己的私钥KSY解密SM2KPY(SM2KSX(M))得到账单信息SM2KSX(M)。

⑨使用X的公钥KPY解密SM2KSX(M)得到账单M。

如果出现争议。客户端Y可以声称自己受到的账单密文SM2KPY(SM2KSX(M))的确来自商家X。并将SM2KSA[IDX||SM2KPY(SM2KSX(M)||T]发送给服务器(仲裁)A,由A仲裁。因为服务器(仲裁)对账单进行认证,认证通过后才发送给客户端Y,同时在服务器端有相关记录,客户端Y经过查询即可验证签名,保证了账单的真实性,为消费纠纷的仲裁提供法律依据。另一方面,假设在T时刻,商家X向仲裁申诉自己的私钥被窃取。服务器会记录下这个时候,当仲裁在验证T以后时刻的消息时,就不会承认账单的真实性,保护了商家的利益。

三、实验及分析

(一)客户端软件测试

对于客户端软件测试,使用GT调测工具,它是腾讯开放给用户的一款随身调测平台,是可在手机上直接运行的"集成调测环境"。其优势是:在没有与电脑连接的情况下也可以对软件app的性能测试(包括CPU性能、内存运行、流量、帧率/流畅度等),也可以查看开发日志、Crash日志、以及对网络数据包的抓取;还可以利用GT提供的基础API自行开发有其他功能的GT插件,用以解决困难的APP调试、测试问题。如图所示,本系统对客户端进行了测试,对相关参数进行了测试。从测试曲线可以看出,客户端的功耗、CPU占用、内存消耗都在指标要求范围内,性能表现良好。

(二)PC端响应时间、内存开销分析

使用实用型功耗分析平台进行综合分析和评估。整个支付,以及查询消费记录等操作过程中,内存开销、响应时间、卡顿现象等方面测试如下。

(1)响应时间

系统响应时间为操作软件的反馈时间,这与软件代码和后天设置直接相关。本软件在保证数据正确性的前提下,其平均响应时间为89ms,并且经过多次调试与校正,本软件最快响应时间达到63ms,完全满足在功耗存储正确率的情况下,达到较好的使用体验。

(2)内存开销

内存开销是指将满足在功能和存储正确率的情况下,占用的内存空间。根据内存开销,我们可以分析代码效率、响应时间等。本系统安全性基于SM2算法,并添加了认证签名机制,一定程度上增加了计算量,导致内存开销也大幅增加。因此本系统在线程上进行了优化,并行算力增加,极大降低了内存功耗。

(3)卡顿现象

卡顿现象是出现在电子设备中的画面滞帧、延迟增加等现象,也就是通常人们所说的“卡”。PC端测试全程没有出现卡顿现象。

(三)服务器性能测试

服务器测试主要使用腾讯的WeTest质量开放平台进行测试。本系统在启动服务器后,需要对服务器的收发包率、内存和swap交换、网卡读写包量、磁盘IO读写四个方面进行了测试,随机选取的时间段测试结果如图所示。通过测试和对比,本系统服务器性能稳定,信息传输效率完全满足用户的使用峰值要求。

(四)结论

通过对系统的各个模块进行独立测试,发现每个模块都能够很好的完成响应的功能,客户端操作简单,功耗小、CPU和内存占用少;PC端能够便捷完成各种操作,速度快,内存占用少;服务器端能够承受住较大的模拟负载能力,且具有较好的并发能力。总体来说,本系统运行良好,安全性高,操作简单,性能稳定,在测试过程中无BUG出现,各部分功能上手简单、操作容易、交互便捷,达到了预期目的。

四、总结

本系统从实际出发,结合当前移动支付纸质收据的不足,着眼于实际需求和社会现状,不断创新,设计了保密性强、成本低、效率高、界面友好、分析结果直观的系统,系统可以大幅度提高电子支付的效率,使移动支付更加安全、便捷,同时也便于商家和个人的查询,使得商家交税、个人报销的快捷化,具有很强的实用性和应用价值。

参考文献:

[1]冯登国,张敏,李昊, 大数据安全与隐私保护. 计算机学报, 2014. 37(7).

[2]冯登国,赵险峰, 信息安全技术概论(第二版). 电子工业出版社, 2013.

[3]安进, 张.J., ():, 基于RFID和图像识别的食品追溯信息查询算法. 科技通报, 2017. 05: p. 142-145.

[4]李兆斌,刘丹丹,黄鑫, 基于国密算法的安全接入设备设计与实现. 信息网络安全, 2016. 11: p. 19-27.

[5]吕述望, SM4 分组密码算法综述. 信息安全研究, 2016. 2(11): p. 995-1007.

[6]程凤伟, 基于国密算法SM2的IPSecVPN技术. 太原学院学报(自然科学版), 2016. 34(1): p. 37-40.

[7]贾大云, 计算机网络安全的现状和防御技术. 技术研发, 2014. 1(145): p. 38-39.

猜你喜欢

移动支付
以微信红包为例分析移动支付对互联网金融的促进作用
从财务角度探讨支付宝移动支付业务对医院的挑战与对策
移动支付中NFC创意新技术
电子商务环境下移动支付模式研究
打车软件的普及对城市交通压力缓解情况研究
移动支付时代大学生消费行为研究
市场竞争中的“蓝海战略”
微信红包移动支付中的诈骗行为与法律监管
基于O2O模式的餐饮POS机设计策略研究
移动支付方式在农村金融中推广的困境分析