CN114968323A - 一种基于国密算法的差分升级方法 - Google Patents

一种基于国密算法的差分升级方法 Download PDF

Info

Publication number
CN114968323A
CN114968323A CN202210570893.8A CN202210570893A CN114968323A CN 114968323 A CN114968323 A CN 114968323A CN 202210570893 A CN202210570893 A CN 202210570893A CN 114968323 A CN114968323 A CN 114968323A
Authority
CN
China
Prior art keywords
differential
algorithm
file
version
difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210570893.8A
Other languages
English (en)
Inventor
唐飞龙
刘磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongan Yunke Technology Development Shandong Co ltd
Original Assignee
Zhongan Yunke Technology Development Shandong Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongan Yunke Technology Development Shandong Co ltd filed Critical Zhongan Yunke Technology Development Shandong Co ltd
Priority to CN202210570893.8A priority Critical patent/CN114968323A/zh
Publication of CN114968323A publication Critical patent/CN114968323A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

本发明涉及应用升级技术领域,具体地说,涉及一种基于国密算法的差分升级方法。包括如下步骤:使用SM2产生一对非对称密钥;上传V1.1新版本;使用BSDiff生成差分包;使用SM3对差分包进行摘要运算,用SM2私钥对摘要值进行签名运算;对V1.1版本进行完成的SM3摘要运算得到摘要值;终端下载差分包、差分包SM2签名值和V1.1摘要值;终端通过公钥验证差分包签名值;合并差分包;校验合并后安装包完整性,差分升级成功则执行安装程序。该基于国密算法的差分升级方法使用国密算法SM3、SM2对差分包进行保护,保证差分包完整性和升级后安装包的正确性;软件包升级时只更新需要改变的地方,使升级更新更快、下载文件更小、占用的带宽更小,为用户节省流量以及节省更新时间。

Description

一种基于国密算法的差分升级方法
技术领域
本发明涉及应用升级技术领域,具体地说,涉及一种基于国密算法的差分升级方法。
背景技术
没有网络安全就没有国家安全,就没有经济社会稳定运行,广大人民群众利益也难以得到保障。当前,我国网络安全形势异常严峻,重要网络和信息系统的安全现状很不理想。密码作为大国标配,与核技术、航天技术并称为国家安全的三大支撑技术。使用中国自己研发的密码算法去解决网络安全最有效、最可靠、最经济的方式,是维护网络安全的核心技术和基础支撑,是保护国家安全的战略资源。国密算法在各行各业的推广和使用也迫在眉睫。
随着网络时代的到来,方便快捷的软件越来越多,但是也面临着严峻的问题,应用越做越大,可能只是一个小小的改动就需要重新下载安装整个APP,这种方式既增加了服务器的压力,又浪费了用户的流量,因此每当软件商发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率不高、升级时间长等问题,且升级包下载安装的过程中,没有使用国密算法,无法保证升级包的完整性和数据来源的真实性。
为了解决上述问题,可以通过使用差分(增量)算法和国密算法保证升级包的完整性和来源的真实性。鉴于此,我们提出了一种基于国密算法的差分升级方法。
发明内容
本发明的目的在于提供一种基于国密算法的差分升级方法,以解决上述背景技术中提出的问题。
为实现上述技术问题的解决,本发明的目的之一在于,提供了一种基于国密算法的差分升级方法,包括如下步骤:
S1、在云端的云平台中使用国密SM2算法产生一对非对称密钥,私钥由云平台自己保管,只有云平台内部可以使用,用于对差分包的签名,外部无权访问和使用,并在终端出厂或系统初始化时将公钥预埋至终端内部用于对升级包的验证;
S2、用户在云平台上传新的V1.1新版本全量的版本的应用;
S3、在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包;
S4、在云平台中使用SM3算法对生成的差分包进行摘要运算HASH(M),生成差分包的摘要值,用之前生成的SM2私钥对差分包的摘要值进行签名运算,得到差分包的SM2签名值(r,s);
S5、云平台对最新上传的V1.1版本进行完成的SM3摘要运算,得到升级的V1.1的摘要值;
S6、终端从云平台中获取要升级的差分包,并将差分包和差分包SM2签名值和V1.1版本的摘要值下载到本地;
S7、终端通过之前预埋的公钥验证差分包的SM2签名值(r,s),验证通过以后证明差分包是完成值的且是可信任的;
S8、合并差分包,终端在本地找到差分包的上一个版本即V1.0版本,通过BSDiff算法将差分包和V1.0版本合并成V1.1版本的安装包;
S9、校验合并后安装包的完整性,通过SM3摘要算法计算新的V1.1安装包版本的摘要值与云平台中计算的V1.1版本的摘要值进行对比,如果相同,则说明差分升级成功,即可执行本地的安装程序,否者升级失败。
作为本技术方案的进一步改进,所述S1中,使用国密SM2算法产生一对非对称密钥,产生SM2密钥对的原理为:
Step1、用随机数发生器产生随机数k∈[1,n-1]k∈[1,n-1],作为私钥d;
Step2、基于私钥,通过算法公式P(x,y)=d*G(x,y)生成公钥p。
作为本技术方案的进一步改进,所述S3中,在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包的具体方法包括如下步骤:
S3.1、将旧文件二进制使用后缀排序或哈希算法形成一个字符串索引;
S3.2、使用该字符串索引对比新文件,生成差异文件(difference file)和新增文件(extra file);
S3.3、将差异文件和新增文件及必要的索引控制信息压缩为差异更新包。
作为本技术方案的进一步改进,所述S3.1中,生成字符串索引时,BSDiff算法里采用基于二分思想的Faster Suffix Sorting(更快的后缀排序)算法来进行索引的生成,其中:
后缀数组即一个一维数组,保存了i(1,n)的某个排列I[i],并且保证suffix(I[i]);
该算法时间复杂度为O(nlogn),空间复杂度为O(n),其中,n为旧文件的二进制字符串长度。
作为本技术方案的进一步改进,所述S3.2中,使用该字符串索引对比新文件,生成差异文件和新增文件的具体方法包括如下:
得到索引后,使用该索引依次查找新旧文件中完全匹配的最长二进制段,但并不会像传统更新算法一样直接打包,而是从该二进制段进行前后扩展,来生成范围更大的“近似匹配”,其中,近似的要求是向前扩展的每个后缀及后向扩展的每个前缀至少有50%字节与旧字符串可以匹配(通常以8个不匹配字节作为阈值);
在匹配完成后,更新包文件也即按此匹配方案生成,包含控制文件、差异文件和新增文件三个部分,其中:
控制文件包含需要添加和插入二进制段的指引信息(“添加指令”指定旧文件中的偏移量和长度,从旧文件读取适当的字节数,并将其添加到差异文件中的相同字节数;“插入指令”只是指定一个长度,指定的字节数是从额外的文件中读取的);差异文件包含近似匹配字段的字节差异;新增文件包含无法近似匹配的完全不同的字段。
作为本技术方案的进一步改进,所述S4中,通过签名运算得到差分包的SM2签名值的计算方法具体如下:
使用之前产生的SM2密钥对的私钥d和公钥p,生成一个随机数k,1<k<n-1;
计算(x,y)=k*G;
计算r=x mod n;
计算s=(k**-1*(HASH(M)+d*r))mod n;
即得到签名值(r,s)。
作为本技术方案的进一步改进,所述S7中,终端通过之前预埋的公钥验证差分包的SM2签名值的计算方法具体如下:
将签名转化为两个数r和s,假如r和s小于1或者大于n-1,则验证直接失败;
若r和s均大于1且小于n-1,则:
计算c=(s)**-1 mod n;
计算u1=((HASH(M))*c)mod n;
计算u2=((r)*c)mod n;
计算(x,y)=u1*G+u2*P;
如果r=x mod n,则签名验证成功,否则失败。
本发明的目的之二在于,提供了一种基于国密算法的差分升级方法的运行平台装置,包括处理器、存储器以及存储在存储器中并在处理器上运行的计算机程序,处理器用于执行计算机程序时实现上述的基于国密算法的差分升级方法的步骤。
本发明的目的之三在于,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于国密算法的差分升级方法的步骤。
与现有技术相比,本发明的有益效果:
1.该基于国密算法的差分升级方法中,使用国密算法SM3、SM2对差分包进行保护,防止对差分包的非法篡改,保证差分包的完整性,并对升级后的文件进行校验,保证升级后安装包的正确性;
2.该基于国密算法的差分升级方法中,差分(增量)更新在软件包升级时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新,使升级更新更快、下载文件更小、占用的带宽更小,为用户节省流量以及节省更新时间。
附图说明
图1为本发明中的整体方法原理框图;
图2为本发明中的差分过程原理示意图之一;
图3为本发明中的差分过程原理示意图之二;
图4为本发明中基于二分思想的Faster Suffix Sorting(更快的后缀排序)算法图;
图5为本发明中示例性的电子计算平台装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1-图5所示,本实施例提供了一种基于国密算法的差分升级方法,包括如下步骤:
S1、在云端的云平台中使用国密SM2算法产生一对非对称密钥,私钥由云平台自己保管,只有云平台内部可以使用,用于对差分包的签名,外部无权访问和使用,并在终端出厂或系统初始化时将公钥预埋至终端内部用于对升级包的验证;
S2、用户在云平台上传新的V1.1新版本全量的版本的应用;
S3、在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包;
S4、在云平台中使用SM3算法对生成的差分包进行摘要运算HASH(M),生成差分包的摘要值,用之前生成的SM2私钥对差分包的摘要值进行签名运算,得到差分包的SM2签名值(r,s);
S5、云平台对最新上传的V1.1版本进行完成的SM3摘要运算,得到升级的V1.1的摘要值;
S6、终端从云平台中获取要升级的差分包,并将差分包和差分包SM2签名值和V1.1版本的摘要值下载到本地;
S7、终端通过之前预埋的公钥验证差分包的SM2签名值(r,s),验证通过以后证明差分包是完成值的且是可信任的;
S8、合并差分包,终端在本地找到差分包的上一个版本即V1.0版本,通过BSDiff算法将差分包和V1.0版本合并成V1.1版本的安装包;
S9、校验合并后安装包的完整性,通过SM3摘要算法计算新的V1.1安装包版本的摘要值与云平台中计算的V1.1版本的摘要值进行对比,如果相同,则说明差分升级成功,即可执行本地的安装程序,否者升级失败。
其中,如图2-图3所示,该基于国密算法的差分升级方法的原理为:通过BSDiff算法(差分更新算法)找出新版本和旧版本不一样的地方,然后将不一样的地方抽取出来形成所谓的更新补丁(patch);客户端在检测到更新的时候,只需要下载差分包到本地,然后将差分包合并至本地的安装包,形成新版本的安装包,文件通过国密算法SM2 withSM3签名验证校验通过后再执行安装即可;同时本地的安装包通过提取当前已安装应用的包即可得到。
本实施例中,S1中,使用国密SM2算法产生一对非对称密钥,产生SM2密钥对的原理为:
Step1、用随机数发生器产生随机数k∈[1,n-1]k∈[1,n-1],作为私钥d;
Step2、基于私钥,通过算法公式P(x,y)=d*G(x,y)生成公钥p。
本实施例中,S3中,在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包的具体方法包括如下步骤:
S3.1、将旧文件二进制使用后缀排序或哈希算法形成一个字符串索引;
S3.2、使用该字符串索引对比新文件,生成差异文件(difference file)和新增文件(extra file);
S3.3、将差异文件和新增文件及必要的索引控制信息压缩为差异更新包。
具体地,BSDiff算法的原理为:
可执行文件的更新会产生零阶变动、一阶变动和二阶变动三类不同的文件变动,具体为:
零阶变动:指编译过程中的固有变化,即完全相同的两段源代码在编译后也可能会发生变化;然而在现代大多数编译环境下,如Unix程序或Windows exe等,相同代码编译后并不会产生变化;
一阶变动:直接修改源代码导致的变动,此变动会导致新旧文件大范围不一致;
二阶变动:由于一阶变动间接引起的变动,每次插入或修改代码都会引起其他未修改代码部分的指针地址或寄存器地址变化,但该变动内的大部分其他二进制字段内容与旧文件保持相同。
在传统的差异更新算法中,要求新旧两文件的二进制的对比保持完全一致。而由于可执行文件中的二阶变动特点,完全一致的匹配方式会极大的增加更新包的大小。类似ExeDiff等平台相关的更新算法可以将可执行文件反编译后找到可变部分并剥离出来,再进行其余指令的比对,将问题简化为源代码的比对问题。但在平台无关的可执行文件环境下,需要将问题转化为发现负责操作部分代码的二进制差异而非内存或寄存器信息的差异。
可执行文件更新前后二阶变动存在两个重要规律:1)没有被更新代码所影响的代码段,在变为可执行文件后,该区域的二进制内容的改变是极为稀疏的,即仅仅有部分指针或寄存器地址会变动,通常不会超过一两个字节;2)更新后的代码和数据会有很大的位置变动,但这种变动大多为整块的移动,即某一块位置中代码内的指针地址变动均会有相同的位移值。这两个规律导致一个重要的事实即:相同源代码对应的两个代码块中,大部分内容字节差为0,而少部分需要更新的地址位移数据又存在大量相同位移值,即源代码相同的代码块差异数据可以被高效压缩。而BSDiff算法主要针对这两个重要规律,可以有效提高算法工作效率。
进一步地,S3.1中,生成字符串索引时,BSDiff算法里采用基于二分思想的FasterSuffix Sorting(更快的后缀排序)算法来进行索引的生成,其中:
后缀数组即一个一维数组,保存了i(1,n)的某个排列I[i],并且保证suffix(I[i]);
该算法时间复杂度为O(nlogn),空间复杂度为O(n),其中,n为旧文件的二进制字符串长度,如图4。
进一步地,S3.2中,使用该字符串索引对比新文件,生成差异文件和新增文件的具体方法包括如下:
得到索引后,使用该索引依次查找新旧文件中完全匹配的最长二进制段,但并不会像传统更新算法一样直接打包,而是从该二进制段进行前后扩展,来生成范围更大的“近似匹配”,其中,近似的要求是向前扩展的每个后缀及后向扩展的每个前缀至少有50%字节与旧字符串可以匹配(通常以8个不匹配字节作为阈值);这些近似匹配可以认为是二阶变动导致的新代码,而非近似匹配的字段均可以认为是一阶变动新生成的字段;
在匹配完成后,更新包文件也即按此匹配方案生成,包含控制文件、差异文件和新增文件三个部分,其中:
控制文件包含需要添加和插入二进制段的指引信息;差异文件包含近似匹配字段的字节差异;新增文件包含无法近似匹配的完全不同的字段。
其中,控制文件中,“添加指令”用于指定旧文件中的偏移量和长度,从旧文件读取适当的字节数,并将其添加到差异文件中的相同字节数;“插入指令”只是用于指定一个长度,指定的字节数是从额外的文件中读取的。
另外,值得说明的是,这三个文件加一起会比新文件略大,但其中控制文件和差异文件是高度结构化的,意味着其均可被高效压缩,所以可以使用类似bzip2等压缩工具将更新包总文件进行非常有效的压缩。
本实施例中,S4中,通过签名运算得到差分包的SM2签名值的计算方法具体如下:
使用之前产生的SM2密钥对的私钥d和公钥p,生成一个随机数k,1<k<n-1;
计算(x,y)=k*G;
计算r=x mod n;
计算s=(k**-1*(HASH(M)+d*r))mod n;
即得到签名值(r,s)。
其中,SM2、SM3验证算法的原理是为了解决否认、伪造、冒充、篡改这些与消息完整性相关的问题,从而数字签名应运而生。数字签名是实现安全电子交易的核心技术之一,签名报文摘要是数字签名的重要组成之一,签名报文摘要即:对报文进行消息摘要,生成一个散列码,它保证了消息的完整,然后只用对这个散列码用私钥加密就好了,这就保证了消息是不是别人,是用户本人发的,且用户本人无法否认。最终,用户本人发出的是消息的摘要。
本实施例中,S7中,终端通过之前预埋的公钥验证差分包的SM2签名值的计算方法具体如下:
将签名转化为两个数r和s,假如r和s小于1或者大于n-1,则验证直接失败;
若r和s均大于1且小于n-1,则:
计算c=(s)**-1mod n;
计算u1=((HASH(M))*c)mod n;
计算u2=((r)*c)mod n;
计算(x,y)=u1*G+u2*P;
如果r=x mod n,则签名验证成功,否则失败。
如图5所示,本实施例还提供了一种基于国密算法的差分升级方法的运行平台装置,该装置包括处理器、存储器以及存储在存储器中并在处理器上运行的计算机程序。
处理器包括一个或一个以上处理核心,处理器通过总线与存储器相连,存储器用于存储程序指令,处理器执行存储器中的程序指令时实现上述的基于国密算法的差分升级方法的步骤。
可选的,存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的基于国密算法的差分升级方法的步骤。
可选的,本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面基于国密算法的差分升级方法的步骤。
本领域普通技术人员可以理解,实现上述实施例的全部或部分步骤的过程可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (7)

1.一种基于国密算法的差分升级方法,其特征在于:包括如下步骤:
S1、在云端的云平台中使用国密SM2算法产生一对非对称密钥,私钥由云平台自己保管,只有云平台内部可以使用,用于对差分包的签名,外部无权访问和使用,并在终端出厂或系统初始化时将公钥预埋至终端内部用于对升级包的验证;
S2、用户在云平台上传新的V1.1新版本全量的版本的应用;
S3、在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包;
S4、在云平台中使用SM3算法对生成的差分包进行摘要运算HASH(M),生成差分包的摘要值,用之前生成的SM2私钥对差分包的摘要值进行签名运算,得到差分包的SM2签名值;
S5、云平台对最新上传的V1.1版本进行完成的SM3摘要运算,得到升级的V1.1的摘要值;
S6、终端从云平台中获取要升级的差分包,并将差分包和差分包SM2签名值和V1.1版本的摘要值下载到本地;
S7、终端通过之前预埋的公钥验证差分包的SM2签名值,验证通过以后证明差分包是完成值的且是可信任的;
S8、合并差分包,终端在本地找到差分包的上一个版本即V1.0版本,通过BSDiff算法将差分包和V1.0版本合并成V1.1版本的安装包;
S9、校验合并后安装包的完整性,通过SM3摘要算法计算新的V1.1安装包版本的摘要值与云平台中计算的V1.1版本的摘要值进行对比,如果相同,则说明差分升级成功,即可执行本地的安装程序,否者升级失败。
2.根据权利要求1所述的基于国密算法的差分升级方法,其特征在于:所述S1中,使用国密SM2算法产生一对非对称密钥,产生SM2密钥对的原理为:
Step1、用随机数发生器产生随机数k∈[1,n-1]k∈[1,n-1],作为私钥d;
Step2、基于私钥,通过算法公式P(x,y)=d*G(x,y)生成公钥p。
3.根据权利要求2所述的基于国密算法的差分升级方法,其特征在于:所述S3中,在云平台中使用BSDiff算法生成V.10和最新V.1.1版本的差分包的具体方法包括如下步骤:
S3.1、将旧文件二进制使用后缀排序或哈希算法形成一个字符串索引;
S3.2、使用该字符串索引对比新文件,生成差异文件和新增文件;
S3.3、将差异文件和新增文件及必要的索引控制信息压缩为差异更新包。
4.根据权利要求3所述的基于国密算法的差分升级方法,其特征在于:所述S3.1中,生成字符串索引时,BSDiff算法里采用基于二分思想的Faster Suffix Sorting算法来进行索引的生成,其中:
后缀数组即一个一维数组,保存了i(1,n)的某个排列I[i],并且保证suffix(I[i]);
该算法时间复杂度为O(nlogn),空间复杂度为O(n),其中,n为旧文件的二进制字符串长度。
5.根据权利要求4所述的基于国密算法的差分升级方法,其特征在于:所述S3.2中,使用该字符串索引对比新文件,生成差异文件和新增文件的具体方法包括如下:
得到索引后,使用该索引依次查找新旧文件中完全匹配的最长二进制段,但并不会像传统更新算法一样直接打包,而是从该二进制段进行前后扩展,来生成范围更大的“近似匹配”,其中,近似的要求是向前扩展的每个后缀及后向扩展的每个前缀至少有50%字节与旧字符串可以匹配;
在匹配完成后,更新包文件也即按此匹配方案生成,包含控制文件、差异文件和新增文件三个部分,其中:
控制文件包含需要添加和插入二进制段的指引信息;差异文件包含近似匹配字段的字节差异;新增文件包含无法近似匹配的完全不同的字段。
6.根据权利要求2所述的基于国密算法的差分升级方法,其特征在于:所述S4中,通过签名运算得到差分包的SM2签名值的计算方法具体如下:
使用之前产生的SM2密钥对的私钥d和公钥p,生成一个随机数k,1<k<n-1;
计算(x,y)=k*G;
计算r=x mod n;
计算s=(k**-1*(HASH(M)+d*r))mod n;
即得到签名值(r,s)。
7.根据权利要求6所述的基于国密算法的差分升级方法,其特征在于:所述S7中,终端通过之前预埋的公钥验证差分包的SM2签名值的计算方法具体如下:
将签名转化为两个数r和s,假如r和s小于1或者大于n-1,则验证直接失败;
若r和s均大于1且小于n-1,则:
计算c=(s)**-1mod n;
计算u1=((HASH(M))*c)mod n;
计算u2=((r)*c)mod n;
计算(x,y)=u1*G+u2*P;
如果r=x mod n,则签名验证成功,否则失败。
CN202210570893.8A 2022-05-24 2022-05-24 一种基于国密算法的差分升级方法 Pending CN114968323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210570893.8A CN114968323A (zh) 2022-05-24 2022-05-24 一种基于国密算法的差分升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210570893.8A CN114968323A (zh) 2022-05-24 2022-05-24 一种基于国密算法的差分升级方法

Publications (1)

Publication Number Publication Date
CN114968323A true CN114968323A (zh) 2022-08-30

Family

ID=82956660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210570893.8A Pending CN114968323A (zh) 2022-05-24 2022-05-24 一种基于国密算法的差分升级方法

Country Status (1)

Country Link
CN (1) CN114968323A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116015679A (zh) * 2022-12-20 2023-04-25 浪潮云信息技术股份公司 政务云基于sm2数字签名的多云管理认证方法及系统
CN116107600A (zh) * 2023-04-13 2023-05-12 麒麟软件有限公司 一种Oracle数据库安装工具及其快速部署方法
CN116743505A (zh) * 2023-08-14 2023-09-12 上海特高信息技术有限公司 一种基于国密的安全传输加密方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116015679A (zh) * 2022-12-20 2023-04-25 浪潮云信息技术股份公司 政务云基于sm2数字签名的多云管理认证方法及系统
CN116015679B (zh) * 2022-12-20 2024-04-30 浪潮云信息技术股份公司 政务云基于sm2数字签名的多云管理认证系统
CN116107600A (zh) * 2023-04-13 2023-05-12 麒麟软件有限公司 一种Oracle数据库安装工具及其快速部署方法
CN116107600B (zh) * 2023-04-13 2023-07-18 麒麟软件有限公司 一种Oracle数据库安装工具及其快速部署方法
CN116743505A (zh) * 2023-08-14 2023-09-12 上海特高信息技术有限公司 一种基于国密的安全传输加密方法
CN116743505B (zh) * 2023-08-14 2023-10-20 上海特高信息技术有限公司 一种基于国密的安全传输加密方法

Similar Documents

Publication Publication Date Title
CN114968323A (zh) 一种基于国密算法的差分升级方法
US8429643B2 (en) Secure upgrade of firmware update in constrained memory
US8015378B2 (en) Updating memory contents of a processing device
CN110321735B (zh) 基于零知识证明的业务办理方法、系统及存储介质
CN109829294B (zh) 一种固件验证方法、系统、服务器及电子设备
EP3026558A1 (en) Method and device for providing verifying application integrity
CN108363580A (zh) 应用程序安装方法、装置、计算机设备和存储介质
EP3026560A1 (en) Method and device for providing verifying application integrity
WO2009157133A1 (ja) 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
CN111258756B (zh) 一种负载均衡方法、装置、计算机设备和可读存储介质
EP3026559A1 (en) Method and device for providing verifying application integrity
US20050154899A1 (en) Mobile software authentication and validation
CN109756340B (zh) 一种数字验签方法、装置和存储介质
CN111404682A (zh) 一种Android环境密钥分段处理方法及装置
CN112560017A (zh) 一种使用三级证书认证实现apk统一签名的方法
CN112506531A (zh) 软件安装方法、装置、电子设备和存储介质
CN111443942A (zh) 资源文件的打包方法、装置、存储介质和计算机设备
CN107122629A (zh) 一种基于随机混淆的Android软件协同加固方法
CN113868704A (zh) 文件数据内容的签名校验方法及系统
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
CN111949996A (zh) 安全私钥的生成方法、加密方法、系统、设备及介质
CN111737276B (zh) 一种修改区块链数据的方法和系统
CN114143197A (zh) 物联网设备ota升级方法、装置、设备及可读存储介质
US20220067727A1 (en) Method for operating a distributed database system, distributed database system, and industrial automation system
CN113448919A (zh) 用于建立和验证索引文件的方法、设备和计算机程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination