APP下载

基于ECDSA 的3D 打印加密码方法

2021-05-07张晓雪

数字通信世界 2021年4期
关键词:数字签名私钥公钥

李 生,窦 馨,张晓雪

(1.青岛海尔智能技术研发有限公司,山东 青岛 266000;2.中国海洋大学信息科学与工程学院,山东 青岛 266100)

目前3D 模型的设计主要通过CAD、Blender 等工具,并将模型输出为STL 格式的3D 数据模型文件,当完成3D 模型的设计后,将3D 模型文件传输到3D 打印机中,通过建模、分层、打印和后期处理以获得打印的部件。为了保护模型文件的安全性,常用的加密方法通常是对STL 模型文件使用AES、RSA、3DES 等加密算法进行加密,或者通过数字水印的方式,对3D 模型进行保护。然而,通过该方法仅能在软件层面上实现对3D 模型文件的保护,在实际的3D 打印工作中,3D 模型不仅仅需要在计算机系统中保证其安全性,而且在切片分层过程中也要对模型文件进行必要的加密。同时,随着3D 打印在信息时代的高速发展,3D 打印机连接到网络的可能性越来越高,受到网络攻击盗取3D 模型文件或者更改3D 模型文件的危险性也越来越高。针对这些问题,我们提出了基于ECDSA 的3D 打印加密方法来保证3D 模型的安全性。

1 相关工作

数字签名技术是信息安全机制中的一种重要技术,其算法一般采用非对称密钥密码体制来实现。常见的数字签名算法有:RSA,其安全性是基于求解离散对数的困难性;DSA,其安全性是基于对有限域的离散对数问题的不可实现性;椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA),其安全性基于椭圆曲线离散对数问题的不可实现性等[1]。

RSA 算法采用较短长度的密钥难以保证签名的安全性,虽然提高密钥长度可以提升安全性,但会随着位数增加,计算量增加,计算成本加大,从而降低了加密效率[2]。相比而言,ECC 算法使用的椭圆曲线域内的离散对数问题的难度相对较大,同等密钥长度下,EC 算法具有更高的安全性[3]。

ECDSA 算法的密码安全性能高,加密解密速度快,同时破解的复杂度高,能在现有软硬件条件下有效的保证3D 模型的安全性,其原理是消息发送方使用自己的私钥对需要发送的信息进行加密,接收方收到经过加密的信息后使用发送方的公钥进行验证解密,而椭圆曲线运算的规则使得其他人无法根据公钥的信息进行伪造或者破解私钥。因此,ECDSA 对3D 模型的加密具有很好的安全性。本文正是运用了由ECC 和DSA 加密算法构成的ECDSA 椭圆曲线数字签名算法来保障3D 模型的安全性。

ECC 为椭圆曲线密码体制,属于非对称加密算法的一种,利用椭圆曲线标量运算,以及椭圆曲线有限域的模运算,实现高速、安全的数字签名和验证,完成对信息的加密解密过程。该算法具体实现过程如下所示:

首先,发送者选定椭圆曲线,并在该椭圆曲线上选取一个点作为基点,记作G;其次,接收者选择一个私钥,记作k,则公钥K为k×G;再次,将基点和公钥传送给发送者,发送者将信息编码至椭圆曲线上的随机点M上,并生成随机整数r;最后,在解码时计算随机点M,再对M进行解码,可以得到加密的信息。由于k和r都是私钥,因此当信息被窃取时,只能得到曲线方程,而无法得到加密的信息。

DSA 为数字签名算法,其基于整数有限域离散对数难解的性质保证传输信息的安全性,包含公钥、私钥以及数字签名,具体过程如下所示:

首先,发送方选择一个大素数,长度为160bit,并将其记为A;其次,再选择一个长度为1024bit 的大素数,记为B,A和B满足条件A|B-1;再次,通过公式(1),公式(2)获取C,D。

则(A,B,C,D)为公钥,公式(2)中x为私钥,x的取值为[1,B-1]中任选的一个整数;然后,当生成公钥和密钥后,发送方将公钥公开,利用私钥对信息进行加密,并将已经加密的信息以及生成的签名一同发送给接收方;最终,接收方利用公钥进行验证,验证顺利通过,即为数据安全传输,没有被篡改。

ECC 密钥位数短、加密速度快,但是基本的运算较为复杂,而DSA 虽然生成速度快,安全性好,但是其缺点也很明显,即验证速度和加密速度较慢。因此,基于ECC 和DSA 加密算法的特征,将二者结合而成的ECDSA 成为3D 模型文件加密的一种新选择。

ECDSA 的数字签名过程类似于DSA 加密算法,而数字签名中的算法采用ECC 加密算法,对信息传输过程分为三步,具体过程如下所示:

假设采用的椭圆曲线方程为F(a,b,p,N,G),其中a和b 为椭圆曲线的参数,p为模运算的底,N为椭圆曲线中点的个数,G则表示基点,可以是椭圆曲线中的任意一点。若设Qa表示公钥,dA表示私钥,则由公式(3)可得公钥Qa:

ECDSA 加密算法的签名共40字节,由两个20字节的值进行表示,若将第一个值记为R,第二个值记为S,则(R,S)表示ECDSA 的签名。若要获得R和S的值,首先需要选择一个20字节的随机整数k,并利用点乘法计算kG的值,将此值记为P,此时,P的x轴坐标则为R;其次,将原数据和P的坐标值x,y作为参数,使用SHA1加密算法做hash 加密,即SHA1(原数据,x,y),获得一个20字节的整数z;最后,通过公式(4)获得的值。

当接收方收到数据时,对加密信息的签名进行验证。此时,只需要通过公式(5)对结果进行验证,即可获取数据。

通过ECDSA 算法对3D 模型进行加密流程图如图1所示。

图1 ECDSA算法对3D模型加密流程图

2 加密结果

实验证明,ECDSA 算法在3D 模型加密方面具有良好的表现。ECDSA 的优越性主要体现在以下几个方面:

(1)计算量小,处理速度快。在私钥的处理速度上,ECC 远比RSA、DSA 快得多。

(2)相同密钥长度下,安全性能更高。如160 位ECC 已经与1024位RSA、DSA 有相同的安全强度。

(3)存储空间占用小。ECC 的密钥尺寸和系统参数相对较小,占用的存储空间也小很多。

(4)在带宽要求方面,ECC 算法以低带宽获得了更好的应用前景。

3 结束语

由此可得,在同样安全级别的密码体制中,ECDSA的密钥规模小,节省带宽和空间,尤其适合一些计算能力和存储空间受限的领域,能有效的保证在现有软硬件条件下3D 模型的安全性。

猜你喜欢

数字签名私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
交通运输行业数字签名系统的设计与实现分析
浅析计算机安全防护中数字签名技术的应用
神奇的公钥密码
数字签名技术在计算机安全防护中的应用
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现
掌握方法用好数字签名