一种基于公钥密码的数据单向安全传输方法与流程

文档序号:17758056发布日期:2019-05-24 21:27阅读:318来源:国知局
一种基于公钥密码的数据单向安全传输方法与流程

本发明涉及一种基于公钥密码的数据单向安全传输方法,属于数据安全传输技术领域。



背景技术:

随着传感器设备、智能穿戴设备及其附属配套设备种类数量的增多,使用场景的复杂性增加,数据采集量的加大,功能开启的随机性增大,与服务主设备网络连接不确定性增加,都对上述设备安全采集存储数据,向服务主设备安全快速传输数据,带来更高的要求。为使上述设备所携带的数据采集终端从数据采集开始就利用对称加密方法对采集的数据进行加密保护,并能够在线传输时服务主设备能够安全的接收和解密数据,需要有效利用公钥密码方法实现对数据采集终端的数据加密密钥进行保护。同时为消除数据采集终端加密密钥以明文的形式固定在程序中,容易被逆向工程等方法提取破译的风险,需要充分利用随机生成密钥的随机性和隐蔽性,增加数据加密密钥的不确定性,进而实现不同次采集的数据使用不同的数据加密密钥(简称一次一密)。

现有技术中基于单向网闸技术实现的由源局域网向目标局域网的数据单向安全传输,是依赖于单向网闸技术原理中的光学单向传输技术实现的数据单向传输,是依赖设备单向传输的物理特性实现的杜绝数据逆向传递的方法,具有满足实时性的要求,适用于不同局域网间传递数据,该技术需要额外的硬件工具和配套系统设备支持。相比之下,本发明是在网络的应用层上实现的,充分利用密码学原理实现的数据单向传输技术,仅需要配套软件的支持,既不需要附加的外部硬件设备的支持,也不依赖于设备单向传输的物理特性,应用领域更加广泛。

现有技术中会话前基于认证协议实现的身份认证技术,是在会话前利用密钥交换协议生成会话密钥的方法。该技术是以双方同时在线能够互联互通并互相知道彼此的公钥和身份为前提,生成的会话密钥为在线情况下实时通信所使用。与本发明在设备配置完毕后,离线分发到数据采集点,采集一段时间数据后,根据网络情况随机上传数据,接收主机实现数据接收和解密有着根本性的不同。

现有技术中在数据传输过程中利用不同数据传输协议转换设置的单向性,实现数据的单向安全传输,比如usb通信协议和spi通信协议之间的交替转换。这种协议转换实现的单向性,但是在实际应用中仍需要增加隔离装置用于在物理层面上保障数据流的单向性,来确保实现数据单向安全传输。其隔离装置是一种利用光电信号转换实现的数据的单向传输。

上述的传输技术虽然能够实现数据安全单向传输,但是与本发明相比使用环境和使用条件不同,对硬件设备的要求也不同,不能够满足上述设备的使用要求。本发明的目的是在已有硬件条件基础上,不增加外部硬件设备的条件下,充分利用密码学方法实现数据向接收主机的单向安全传输。



技术实现要素:

本发明的目的在于解决传感器设备、智能穿戴设备及其附属配套设备等实现数据采集并向服务主设备数据单向安全传输中,现有技术无法实现在离线条件下安全采集数据及加密存储数据,在网络条件满足时,无外部单向物理传输设备支持的条件下,完全依赖密码学方法实现数据单向安全传输的技术缺陷,提出了一种基于公钥密码的数据单向安全传输方法。

所述数据单向安全传输方法是在公钥加密基础上,预置公钥于数据采集设备中,预置私钥于服务主设备中,由数据采集设备在数据采集模式下实现数据的采集,由数据发送接收模式下实现数据由发送主机向接收主机的安全传递。

其中,数据采集设备中的公钥和服务主设备中的私钥称为公私钥对,该公私钥对的产生及存储过程,包括如下步骤:

步骤a1)第三方可信机构产生公钥文件和私钥文件;

步骤a2)由转码工具对公钥文件和私钥文件进行base64转码操作后生成二进制形式的公钥p和私钥s;

步骤a3)分别将公钥p预置入数据采集设备中以及将私钥s预置入服务主设备中。

其中,数据采集设备在数据发送接收模式下即为发送主机;服务主设备在数据发送接收模式下称为接收主机;数据采集模式下功能实现模块包括指令接收处理模块、密钥生成模块、rsa实现密钥加密模块、数据采集模块、aes实现数据加密模块以及数据存储模块;

其中,数据发送接收模式下功能实现模块包括发送主机中的指令处理模块、数据读取模块、数据发送模块以及接收主机中的数据接收模块、数据拼装模块、rsa实现密钥解密模块、aes实现数据解密模块、数据组装模块;

其中,发送主机中指令接收处理模块响应指令进入不同的工作模式;

其中,发送主机中密钥生成模块生成长度大于256比特的aes密钥;

其中,发送主机中rsa实现密钥加密模块利用接收主机的公钥对生成的密钥进行加密,获得长度为1024比特或2048比特长度的密文;

其中,发送主机中aes实现数据加密模块利用产生的密钥对数据采集模块传递过来的数据进行加密;

其中,发送主机中数据存储模块实现密钥密文和采集数据的密文进行组合存储到指定位置中;

其中,发送主机中的数据采集模块发送主机在数据采集模式下,利用自身传感器实现的数据记录;

其中,接收主机中数据拼装模块对发送主机发送过来的数据进行组合,便于密钥密文和数据密文的对应;

其中,接收主机中数据组装模块对发送主机中解密得到的数据进行组装形成第三方可读取的特定格式的数据文件。

在数据采集设备和服务主设备配置完毕后,将数据采集设备配置到数据采集点启动数据采集模式进行数据采集工作;服务主设备在数据采集设备工作的最大时间范围内和数据采集点的数据采集设备联网,数据采集设备启动数据发送接收模式将数据上传到服务主设备,这样就完成了数据的采集和上传工作。

其中,数据采集模式具体工作步骤如下:

步骤b1:数据采集设备启动后,指令接收处理模块接收到连续输入5次返回键指令后开启数据采集模式;

步骤b2:密钥生成模块生成长度大于256比特的aes动态密钥,并将aes动态密钥传递到aes实现数据加密模块和rsa实现密钥加密模块,为步骤b3加密密钥和步骤b4加密数据做准备;

步骤b3:数据采集设备中rsa实现密钥加密模块利用预置入的服务主设备的公钥p,在接收到密钥生成模块传递过来的aes动态密钥后,对aes动态密钥进行加密得到1024比特或2048比特的aes动态密钥密文,并将aes动态密钥密文传递到数据存储模块;

步骤b4:数据采集设备中数据采集模块获取传感器的采集数据和aes密钥长度相同时,将数据传递到aes实现数据加密模块,aes实现数据加密模块在接收到步骤b2传递来的aes动态密钥后,将传感器获得的连续的采集数据明文进行加密获得连续的采集数据密文,在获得连续的采集数据密文后,将连续的采集数据密文传递到数据存储模块;

步骤b5:数据采集设备中的数据存储模块在接收到aes动态密钥密文和连续的采集数据密文后,实现将aes动态密钥密文和连续的采集数据密文进行组合存储,形成aes动态密钥密文和连续的采集数据密文相对应的采集数据存储块,在数据采集设备关机或重启停止数据采集模式之前产生的连续的采集数据密文都将视为本次操作产生的采集数据存储块;

步骤b6,在数据采集设备关机或重启完成一次数据采集操作后,选择再次进入数据采集模式,重复步骤b1至步骤b5的操作,开启新的数据采集操作,形成新的采集数据存储块;

数据发送接收模式由发送主机和接收主机共同完成的,其具体实现步骤如下:

步骤c1:发送主机开机后连续输入5次电源键进入数据发送接收模式,此时等待接收主机的连接请求,如果没有连接请求,停留在此步骤;如果有连接请求,跳至步骤c2;

步骤c2:接收主机启动后输入发送主机ip地址,实现接收主机和发送主机互联;

步骤c3:发送主机和接收主机连接建立后,发送主机中数据读取模块从存储空间中连续读取数据,并将数据传递到数据发送模块,由数据发送模块将采集数据存储块发送到接收主机;

步骤c4:接收主机中数据接收模块接收发送主机发送的采集数据存储块,并将数据传递到数据拼装模块,数据拼装模块组装接收到的数据,形成完整的aes动态密钥密文和连续的采集数据密文所对应的采集数据存储块;

步骤c5:接收主机中接收到一个采集数据存储块后,此时rsa实现密钥解密模块用私钥s对步骤c4接收到的数据块中aes动态密钥密文进行解密得到aes动态密钥,并将aes动态密钥传递到aes实现数据解密模块,aes实现数据解密模块用rsa实现密钥解密模块解密得到的aes动态密钥解密步骤c4接收到的数据块中采集数据密文,得到步骤b5采集数据存储块中连续的采集数据密文所对应的步骤b4获取的连续的采集数据明文;

步骤c6:在完成一个采集数据存储块的接收及解密后,接收主机中数据组装模块对解密得到的数据进行固定格式文件的组装,得到第三方可读取的特定格式的数据文件。

有益效果

本发明一种基于公钥密码的数据单向安全传输方法,与现有数据单向传输方法相比,具有如下有益效果:

1.本发明采用了国际通用公钥密码手段对数据加密密钥做了加密保护,充分保证了数据加密密钥的安全性;

2.本发明不需要额外硬件的支持,本发明数据传输的安全性依赖于现广泛使用的密码学做支撑,有着严格的理论依据,使用场景和方式更加的灵活多样;

3.本发明在数据采集设备中采用动态方式产生密钥,有效避免了人为输入密钥的不安全性和终端设备输入条件的种种限制,扩大了数据采集设备的使用范围和使用环境,也扩展了本方法的使用领域和范围;

4.本发明所提采集数据加密使用的是动态随机产生的密钥,有效避免了数据加密密钥在程序中明文形式存在,程序被逆向工程破解后数据加密密钥被发现的风险;

5.本发明实现了对所采集数据加密的一次一密,即每次数据采集存储所使用的数据加密密钥都不相同,有效提高了采集数据的安全性;

6.本发明充分利用了对称加解密的高效性,提高了采集数据密文存储的安全性及接收主机中数据密文解密的高效性,缩短了对数据操作的时间。

附图说明

图1是本发明一种基于公钥密码的数据单向安全传输方法及实施例中从发送主机到接收主机的模块组成及数据流示意图;

图2是本发明一种基于公钥密码的数据单向安全传输方法及实施例中的采集数据存储块示意图;

图3是本发明一种基于公钥密码的数据单向安全传输方法及实施例中的连续的采集数据明文示意图;

图4是本发明一种基于公钥密码的数据单向安全传输方法及实施例中的第三方可读取的特定格式的数据文件示意图;

图5是本发明一种基于公钥密码的数据单向安全传输方法及实施例中可信第三方公私钥对产生及配置图;

图6是本发明一种基于公钥密码的数据单向安全传输方法及实施例中的发送主机在数据记录模式下的程序流程图;

图7是本发明一种基于公钥密码的数据单向安全传输方法及实施例中的收发双发在数据发送接收模式下的程序流程图。

具体实施方式

下面结合附图和实施例对本发明一种基于公钥密码的数据单向安全传输方法做进一步说明和详细描述。

实施例1

本实施例详细阐述了本发明一种基于公钥密码的数据单向安全传输方法的的工作过程。

具体到本实施例中,参数设定为如下:

rsa程序加密和解密分组长度为1024比特,aes程序加密和解密分组长度为256比特。

如图1所示,为本发明所提出的一种基于公钥密码的数据单向安全传输方法的模块组成及数据流示意图。其中,左虚框为发送主机部分,右虚框为接收主机部分,单箭头为比特数据流方向,双箭头为块数据流方向,虚线为连续操作数据流方向。

从图1中可以看出,密钥生成模块生成256比特aes动态密钥传递到rsa实现密钥加密模块加密形成1024比特的aes动态密钥密文,传递到aes实现数据加密模块为该模块加密数据采集模块传递来的采集数据提供数据加密密钥,数据经加密后形成256比特的采集数据密文;1024比特的动态密钥密文和若干个256比特的采集数据密文形成一个采集数据存储块,如图2;数据读取模块读取数据传递到数据发送模块由其发送到接收主机的数据接收模块;数据接收模块接收到数据后传递到数据拼装模块拼装成采集数据存储块;rsa实现密钥解密模块从采集数据存储块中提取1024比特的aes动态密钥密文进行解密得到256比特的aes动态密钥明文,并传递给aes实现数据解密模块;aes实现数据解密模块按照每256比特数据为一组从采集数据存储块中连续提取采集数据密文,进行解密得到本块的连续的采集数据明文,如图3;数据组装模块对连续的采集数据明文进行组装形成第三方可读取的特定格式的数据文件,如图4。

图5是公私密钥对产生配置过程示意图,具体产生配置过程如下:

d1)利用linux系统自带openssl,在终端分别输入opensslgenrsa-outrsa_private_key_1024.pem1024和opensslrsa-inrsa_private_key_1024.pem-outrsa_public_key_1024.pem–pubout得到1024位的公私钥证书文件;

d2)为便于实现该方法在不同设备之间的可以移植性,本方法不依赖系统库的支持,独立完成对证书文件的读取操作,需要对证书文件进行转码操作,在第一步成功基础上,终端下分别输入opensslbase64-d-inrsa_private_key_1024.pem-outprivate.pem得到二进制文件形式的公钥p,opensslbase64-d-inrsa_public_key_1024.pem-outpublic.pem,得到二进制文件形式的私钥s;

d3)在第二步完成基础上,分别将公钥p置入发送主机,将私钥s置入接收主机。

图6是本发明所提出的一种基于公钥密码的数据单向安全传输方法在数据采集模式下,由数据采集设备独立完成的程序流程图,具体过程如下:

e1)数据采集设备开机后,指令接收处理模块响应连续输入的5次返回键指令,进入数据采集模式;

e2)数据采集模式启动后,由密钥生成模块首先随机产生256比特长度aes动态密钥kn,并分别向rsa实现公钥加密模块和aes实现数据加密模块进行传递;

e3)rsa实现密钥加密模块读取预置的公钥p,采用rsa加密程序对密钥生成模块产生的aes动态密钥kn进行加密得到aes动态密钥密文on;

e4)e2过程完毕后,数据采集模块获得采集数据明文,并将采集到的数据传递到aes实现数据加密模块,aes实现数据加密模块利用aes动态密钥kn进行对数据进行加密得到采集数据密文dn;

e5)数据存储模块将aes动态密钥密文on和连续的采集数据密文dn存储到指定位置,得到采集数据存储块blockkn;

e6)上述e1至e5的过程中,用户根据使用需求反复进入,形成多个采集数据存储块,直至数据采集设备的空间使用或电池使用受限。

图7是本发明所提出的一种基于公钥密码的数据单向安全传输方法在数据发送接收模式下,由发送主机和接收主机共同完成的程序流程图,具体过程如下:

f1)发送主机在开机后,指令接收处理模块响应连续输入5次的电源键指令,进入数据发送接收模式,等待接收主机的通信连接请求;

f2)接收主机在开机后启动接收程序,输入发送主机ip地址,完成和发送主机的通信建立;

f3)发送主机在通信连接建立后,由发送主机数据读取模块逐blockkn读取数据,由数据发送模块将此发送到接收主机,接收主机数据接收模块逐blockkn接收数据完成后,将数据传递到接收主机数据拼装模块,数据拼装模块拼装形成blockkn,rsa实现密钥解密模块读取本地预置私钥s采用rsa解密程序解密得到该块的aes动态密钥kn,并以此kn为aes动态密钥用aes实现数据解密模块解密cn得到连续的采集数据明文dn,完成blockkn之后,发送主机开始进入下一个块blockkn+1读取发送工作,接收主机开始开始进入blockkn+1接收程序;

f4)接收主机在完成一个block的数据接收解密后,由接收主机的数据组装模块对block数据进行组装形成第三方可读取的特定格式的数据文件;

f5)接收主机在完成所有数据的接收组装之后,根据用户需求选择性的对原有数据进行再发送或数据清空操作,从而保证发送主机空间使用的连续性和本发明使用的重复性。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的变化和改进,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1