一种基于SM3国密算法的SFTP文件传输摘要校验方法技术

技术编号:30535786 阅读:12 留言:0更新日期:2021-10-30 13:11
本发明专利技术公开了一种基于SM3国密算法的SFTP文件传输摘要校验方法,其包括在SSH源码中cipher.c密码算法文件中增加SM3国密算法;在SSH源码中sftp.c安全传输文件中增加python脚本调用,其中,python脚本用于通过SM3国密算法计算传输文件的文件杂凑值;建立加密隧道;SSH客户端基于SFTP协议进行传输文件的传输;SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值;SSH客户端通过SSH客户端调用的python脚本计算传输文件的第二文件杂凑值;判断第二文件杂凑值与第一文件杂凑值是否相等;若是,则发送传输文件传输成功信息;若否,则发送传输文件传输失败信息。本发明专利技术通过增加SM3国密算法,配合python脚本调用,实现SFTP协议上传文件、下载文件摘要校验,保障文件传输的准确性和安全性。文件传输的准确性和安全性。文件传输的准确性和安全性。

【技术实现步骤摘要】
一种基于SM3国密算法的SFTP文件传输摘要校验方法


[0001]本专利技术涉及网络安全
,尤其是涉及一种基于SM3国密算法的SFTP文件传输摘要校验方法。

技术介绍

[0002]互联网环境愈发复杂多变,人们越发注重网络安全,FTP(File Transfer Protocol,文件传输协议)下的数据传输使用的是明文传输,包括口令,传输速度比较快,但缺少安全性保障,特别是有了交换环境下的数据监听后,明文传输变得特别危险,不法分子可以截获传输数据并从中获得一些敏感信息,比如用户名和密码等,从而可以远程登录系统,进而采用本地溢出获得root权限,控制整个服务器。无论是政府企业还是私人电商平台,公司内部数据都属于机密数据,为了避免文件传输过程中受到他人非法篡取,用户花更多的精力在网络安全上
[0003]SFTP应运而出,简称安全文件传输协议,这是在FTP的基础上对传输的数据进行了加密,保障数据安全传输。SFTP是在SSH建立安全通信隧道的基础上进行加密和验证的,而SSH是通过公开密钥算法来验证加密,给消息传输增加了一层安全保障;但消息传输中仍存在文件内容截获篡改的情况发生,如何确保消息传输的准确性和完整性,成为亟需解决的技术问题。

技术实现思路

[0004]基于此,有必要针对现有技术的不足,提供一种基于SM3国密算法的SFTP文件传输摘要校验方法,实现SFTP协议上传文件、下载文件摘要校验,保障文件传输的准确性和安全性。
[0005]为解决上述技术问题,本专利技术采用以下技术方案:r/>[0006]本专利技术提供了一种基于SM3国密算法的SFTP文件传输摘要校验方法,其包括如下步骤:
[0007]步骤S110、在SSH源码中cipher.c密码算法文件中增加SM3国密算法;
[0008]步骤S120、在SSH源码中sftp.c安全传输文件中增加python脚本调用,其中,python脚本用于通过SM3国密算法计算传输文件的文件杂凑值;
[0009]步骤S130、建立加密隧道,SSH客户端和SSH服务端开始通信;
[0010]步骤S140、SSH客户端基于SFTP协议进行传输文件的传输;
[0011]步骤S150、SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值;
[0012]步骤S160、SSH客户端通过SSH客户端调用的python脚本计算传输文件的第二文件杂凑值;
[0013]步骤S170、判断第二文件杂凑值与第一文件杂凑值是否相等;若是,则执行步骤S180;若否,则执行步骤S190;
[0014]步骤S180、发送传输文件传输成功信息;
[0015]步骤S190、发送传输文件传输失败信息。
[0016]在其中一个实施例中,所述步骤S190之后,还包括:
[0017]步骤S200、发送传输文件是否需要重新传输信息,若是,则执行步骤S140;若否,则不执行任何操作。
[0018]在其中一个实施例中,当传输文件为上传文件时,所述步骤S150的方法,具体操作包括:
[0019]步骤S151、SSH服务端接收传输文件完成;
[0020]步骤S152、SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值,并向SSH客户端发送返回消息;其中,所述返回消息表示SSH服务端的SM3杂凑值已经生成。
[0021]在其中一个实施例中,当传输文件为下载文件时,所述步骤S140的方法,具体操作包括:
[0022]步骤S141、SSH客户端基于SSH中的SFTP协议发送传输文件的下载请求给SSH服务端;
[0023]步骤S142、SSH服务端收到下载请求,基于SFTP协议将传输文件发送给SSH客户端;
[0024]步骤S143、SSH客户端收到传输文件,向SSH服务端发送响应消息;所述响应消息表示传输文件已经接收完成。
[0025]在其中一个实施例中,当传输文件为下载文件时,所述步骤S150的方法,具体操作包括:
[0026]SSH服务端接收响应消息,结合SSH客户端请求下载传输文件的路径参数,通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值,并向SSH客户端发送消息表示第一文件杂凑值已经生成。
[0027]在其中一个实施例中,SSH客户端请求下载传输文件的路径参数通过步骤S141中的下载请求获取。
[0028]在其中一个实施例中,所述S150、SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值的方法,具体操作包括:
[0029]数据填充;
[0030]数据扩展;
[0031]迭代压缩。
[0032]在其中一个实施例中,所述数据填充的方法,具体包括:
[0033]对传输文件进行二进制转换,得到长度为L比特的消息文件;
[0034]将比特“1”添加到消息文件的末尾,再添加k个“0”,其中,k是满足L+1+k=448mod512的最小负整数,最后再末尾添加64比特串,该比特串是长度L的二进制表示,获得填充后的消息文件,最终得到的填充后的消息文件的比特长度为512的倍数,实现SM3国密算法的数据填充操作。
[0035]在其中一个实施例中,所述数据扩展的方法,具体包括:
[0036]将填充后的消息文件进行分块,每块大小为512比特,得到n个消息块,n为(L+k+64)/512得到的整数,然后将消息块扩展为132个字;
[0037]先将填充后的消息文件分组得到的消息块划分为16个字,17到67个字通过循环位左移得到,后64个字通过前68个字循环间隔4字进行与运算得到。
[0038]在其中一个实施例中,所述迭代压缩的方法,具体包括:
[0039]设定ABCDEFGH为字寄存器,TT1、TT2为中间值字寄存器,压缩函数为CF,将ABCDEFGH为字寄存器赋值迭代值V0初始变量IV,计算中间值TT1、TT2,计算完成后更新ABCDEFGH,循环加一,迭代计算TT1、TT2值,更新字寄存器,最终得到迭代压缩结果Vn,n为分组后消息块的数量。
[0040]综上所述,本专利技术提供的一种基于SM3国密算法的SFTP文件传输摘要校验方法通过增加SM3国密算法,配合python脚本调用,实现SFTP协议上传文件、下载文件摘要校验,保障文件传输的准确性和安全性。
附图说明
[0041]图1为本专利技术实施例提供的第一种基于SM3国密算法的SFTP文件传输摘要校验方法的流程示意图;
[0042]图2为本专利技术实施例提供的第二种基于SM3国密算法的SFTP文件传输摘要校验方法的流程示意图。
具体实施方式
[0043]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于SM3国密算法的SFTP文件传输摘要校验方法,其特征在于,包括如下步骤:步骤S110、在SSH源码中cipher.c密码算法文件中增加SM3国密算法;步骤S120、在SSH源码中sftp.c安全传输文件中增加python脚本调用,其中,python脚本用于通过SM3国密算法计算传输文件的文件杂凑值;步骤S130、建立加密隧道,SSH客户端和SSH服务端开始通信;步骤S140、SSH客户端基于SFTP协议进行传输文件的传输;步骤S150、SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值;步骤S160、SSH客户端通过SSH客户端调用的python脚本计算传输文件的第二文件杂凑值;步骤S170、判断第二文件杂凑值与第一文件杂凑值是否相等;若是,则执行步骤S180;若否,则执行步骤S190;步骤S180、发送传输文件传输成功信息;步骤S190、发送传输文件传输失败信息。2.根据权利要求1所述的一种基于SM3国密算法的SFTP文件传输摘要校验方法,其特征在于,所述步骤S190之后,还包括:步骤S200、发送传输文件是否需要重新传输信息,若是,则执行步骤S140;若否,则不执行任何操作。3.根据权利要求1或2所述的一种基于SM3国密算法的SFTP文件传输摘要校验方法,其特征在于,当传输文件为上传文件时,所述步骤S150的方法,具体操作包括:步骤S151、SSH服务端接收传输文件完成;步骤S152、SSH服务端通过SSH服务端调用的python脚本计算传输文件的第一文件杂凑值,并向SSH客户端发送返回消息;其中,所述返回消息表示SSH服务端的SM3杂凑值已经生成。4.根据权利要求1或2所述的一种基于SM3国密算法的SFTP文件传输摘要校验方法,其特征在于:当传输文件为下载文件时,所述步骤S140的方法,具体操作包括:步骤S141、SSH客户端基于SSH中的SFTP协议发送传输文件的下载请求给SSH服务端;步骤S142、SSH服务端收到下载请求,基于SFTP协议将传输文件发送给SSH客户端;步骤S143、SSH客户端收到传输文件,向SSH服务端发送响应消息;所述响应消息表示传输文件已经接收完成。5.根据权利要求4所述的一种基于SM3国密算法的SFTP文件传输摘要校验方法,其特征在...

【专利技术属性】
技术研发人员:陈都唐卓马兴旺
申请(专利权)人:深圳市证通电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1