CN116455584B - 一种基于软件完整性的下载方法及系统 - Google Patents

一种基于软件完整性的下载方法及系统 Download PDF

Info

Publication number
CN116455584B
CN116455584B CN202310498377.3A CN202310498377A CN116455584B CN 116455584 B CN116455584 B CN 116455584B CN 202310498377 A CN202310498377 A CN 202310498377A CN 116455584 B CN116455584 B CN 116455584B
Authority
CN
China
Prior art keywords
signature
data unit
ith
installation package
data
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.)
Active
Application number
CN202310498377.3A
Other languages
English (en)
Other versions
CN116455584A (zh
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.)
Beijing Aolande Information Technology Co ltd
Original Assignee
Beijing Aolande Information Technology 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 Beijing Aolande Information Technology Co ltd filed Critical Beijing Aolande Information Technology Co ltd
Priority to CN202310498377.3A priority Critical patent/CN116455584B/zh
Publication of CN116455584A publication Critical patent/CN116455584A/zh
Application granted granted Critical
Publication of CN116455584B publication Critical patent/CN116455584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于软件完整性的下载方法及系统,属于软件下载技术领域,方法包括:接收下载请求;生成数字签名;随机生成签名分解参数序列,根据签名分解参数序列生成数据分解参数序列;根据签名分解参数序列和数据分解参数序列分别将数字签名和软件安装包分解为多个子签名和数据单元;通过子签名构建加密密钥,通过加密密钥对数据单元进行加密,运行第一个数据单元,将运行函数的函数名依次记录在运行信息向量中,作为第一个数据单元的运行信息;通过第i个子签名和第i‑1个数据单元的运行信息构建第i个加密密钥,对第i个数据单元进行加密;发送加密软件安装包、数字签名和签名分解参数序列至用户端,以使用户端进行验证下载。

Description

一种基于软件完整性的下载方法及系统
技术领域
本发明属于软件下载技术领域,具体涉及一种基于软件完整性的下载方法及系统。
背景技术
人们在日常上网的过程,不可避免需要进行软件下载。在网络上下载的软件的过程中,软件安装包可能被不法分子进行了非法修改,导致软件安装包被篡改,造成软件安装包损坏无法成功安装,还容易在下载过程中被植入木马病毒,导致信息泄露。
发明内容
为了解决现有技术存在的软件安装包在下载过程中易被篡改,造成软件安装包损坏无法成功安装,在下载过程中还容易被植入木马病毒,导致信息泄露的技术问题,本发明提供一种基于软件完整性的下载方法及系统。
第一方面
本发明提供了一种基于软件完整性的下载方法,应用于服务器端,包括:
S101:接收用户端对于软件安装包的下载请求;
S102:生成软件安装包的数字签名;
S103:随机生成签名分解参数序列,根据签名分解参数序列生成数据分解参数序列;
S104:根据签名分解参数序列将数字签名分解为N个子签名,根据数据分解参数序列将软件安装包分解为N个数据单元,子签名的数量与数据单元的数量相同;
S105:通过第一个子签名构建第一个加密密钥,通过第一个加密密钥对第一个数据单元进行加密,运行第一个数据单元,将第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第一个数据单元的运行信息;
S106:通过第i个子签名和第i-1个数据单元的运行信息构建第i个加密密钥,通过第i个加密密钥对第i个数据单元进行加密,运行第i个数据单元,将第i个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第i个数据单元的运行信息;
S107:直至完成所有数据单元的加密;
S108:发送经过加密的软件安装包、软件安装包的数字签名和签名分解参数序列。
第二方面
本发明提供了一种基于软件完整性的下载系统,应用于服务器端,用于执行第一方面中的任意一项下载方法。
第三方面
本发明提供了一种基于软件完整性的下载方法,应用于用户端,包括:
S201:发起对于软件安装包的下载请求;
S202:接收经过加密的软件安装包、软件安装包的数字签名和签名分解参数序列;
S203:验证数字签名,在数字签名验证通过的情况下,根据签名分解参数序列生成数据分解参数序列;
S204:根据签名分解参数序列将数字签名分解为N个子签名,根据数据分解参数序列将软件安装包分解为N个数据单元;
S205:通过第一个子签名计算第一个解密密钥,通过第一个解密密钥对第一个数据单元进行解密,下载并运行第一个数据单元,将第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第一个数据单元的运行信息;
S206:通过第i个子签名和第i-1个数据单元的运行信息构建第i个解密密钥,通过第i个解密密钥对第i个数据单元进行解密,下载并运行第i个数据单元,将第i个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第i个数据单元的运行信息;
S207:直至完成所有数据单元的解密以及下载。
第四方面
本发明提供了一种基于软件完整性的下载系统,应用于用户端,用于执行第三方面中的任意一项下载方法。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,通过将软件安装包的数字签名分解为多个子签名,同时将软件安装包分解为同等数量的数据单元,利用子签名以及前一个数据单元的运行信息对当前数据单元进行加密,在后续下载过程中,实时验证数据单元的运行情况,可以在实际运行情况出现错误时及时地停止下载,只有在软件安装包完整的情况下,才能最终实现对于软件安装包的下载以及安装,实现对于整个软件安装包的防篡改,避免木马病毒入侵,维护信息安全。
(2)在本发明中,通过随机性的分解参数对数字签名和软件安装包进行分解,可以进一步地提升软件安装包的加密可靠性。
(3)在本发明中,当前数据单元的加密需要用到前一个数据单元的运行情况,可以保证加密链条的完整性与连续性,一旦某个数据单元被篡改,对于后面的数据单元的解密都将产生影响,提升了整个软件安装包的防篡改性。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明提供的一种基于软件完整性的下载方法的流程示意图;
图2是本发明提供的另一种基于软件完整性的下载方法的流程示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
在一个实施例中,参考说明书附图1,本发明提供的一种基于软件完整性的下载方法的流程示意图。
本发明提供的一种基于软件完整性的下载方法,应用于服务器端,包括:
S101:接收用户端对于软件安装包的下载请求。
其中,用户端可以是手机、平板、电脑等设备,用户端通过触控点击、鼠标点击、语音指令等形式发出下载请求,用户端和服务器端建立通信连接,服务器端接收到下载请求后,根据下载请求调取相应的软件安装包。需要说明的是,随着科技的发展目前用户端发出下载请求的形式有很多,本发明对于下载请求的形式不做限定。
S102:生成软件安装包的数字签名。
其中,数字签名是一种数字技术,用于验证数字信息的真实性和完整性,并确保发送者的身份和数据的来源。它是一种密码学技术,可以保证数据的安全性和不可篡改性。
需要说明的是,数字签名通常采用以下的形式:服务器端将待发送的信息用哈希函数处理,得到一个固定长度的摘要。服务器端使用自己的私钥对摘要进行加密。加密后的摘要和服务器端的公钥一起发送给用户端。用户端使用服务器端的公钥对加密的摘要进行解密,得到原始的摘要。用户端将收到的原始信息用同样的哈希函数进行处理,得到另一个摘要。
在用户端对接收的软件安装包进行验证的过程中,如果两个摘要相同,则表明信息是真实的,完整的,未被篡改过的,并且服务器端发送的软件安装包是被认可的。数字签名可以防止数据被篡改,因为任何对数据的修改都会改变哈希值,从而导致数字签名验证失败。数字签名可以验证服务器端的身份,因为只有服务器端持有相应的私钥才能生成数字签名。另外,数字签名还可以防止服务器端否认自己发送过特定的信息,因为数字签名是与服务器端的私钥相关联的。数字签名可以在数字环境中快速、准确地完成认证和验证,节省时间和人力成本。
在一种可能的实施方式中,S102具体包括子步骤S1021至S1026:
S1021:构建椭圆曲线,椭圆曲线的参数包括:p,a,b,G,n,h,其中,p表示素数,a表示第一椭圆系数,b表示第二椭圆系数,G表示基点,n表示G的阶数,h表示余因子。
其中,在密码学中,椭圆曲线提供了一种安全的加密和数字签名方案,这些方案比传统的加密算法更加安全,而且需要更短的密钥长度。这是因为,与传统加密算法相比,椭圆曲线在有限域上的离散对数问题更难解决,因此攻击者需要更长的时间和更高的计算能力才能破解密码系统。通过椭圆曲线进行加密和数字签名的方案提供了一种更安全、更高效的加密和数字签名方案,被广泛应用于电子商务、互联网金融、移动支付等领域。
S1022:选择一个随机数k,计算kG=(X1,Y1),将坐标X1转换为整数。
S1023:r=X1 mod n,若r=0,则回到S1022,否则进入S1024。
S1024:计算l=SHA-1(M),并将l转换成整数,M表示原始数据,SHA-1(M)表示使用SHA-1计算的M的数字摘要。
其中,SHA-1是一种安全散列算法,可以将任意长度的消息转换为一个160位的数字指纹。SHA-1算法被广泛应用于数字签名、认证和数据完整性检查等领域,具有高强度的安全性和广泛的应用性。数字摘要是将任意长度的消息(比如文本、文件等)通过特定的算法转换成固定长度的数字串。数字摘要可以看做是原始数据的"指纹",具有唯一性、不可逆性、敏感性等特点。通过比较两个数字摘要是否相同,可以判断原始数据是否被篡改过。
S1025:构建签名方程,k=l+s+drmodn,利用私钥d计算s=k-l-r d(mod n),若s=0,则回到S1022,否则进入S1026。
S1026:将(r,s)作为软件安装包的数字签名。
需要说明的是,本发明涉及到的数字签名方程中只有1次乘法运算,相对于现有技术中数字签名算法,降低了乘法运算,在保证可以检测和防止伪造数字签名的同时,签名方程更简单,计算量更小,通信成本更低,在实际使用过程中,提高了数字签名的速度且占用计算资源少。
需要说明的是,本发明在生成数字签名的过程中,存在随机数k,使得第三方无法窃取私钥d,因为随机数k和私钥d都是未知的,一个方程中,存在两个未知数是无法求解的,从而保证了攻击者无法通过窃取发送者的私钥伪造数字签名,也就是说,攻击者通过伪造假的私钥伪造出的数字签名,而伪造的数字签名是需要经过接收者验证的,私钥对应的公钥只有一个,而假的私钥生成的数字签名是不可能正确的,从而实现了对发送者身份的鉴别。
攻击者如果篡改发送者发送的消息,得到不同的数字摘要,进而得到不同的r值,而真实的r值在数字签名中是唯一的,篡改后的消息生成的数字摘要生成的r值,与真实的数字摘要生成的r值是不同的,因此在消息接收端对数字签名进行验证时,假的r值与数字签名里真实的r值不同,则消息不能通过,实现了消息的真实性和完整性的校验。
在一种可能的实施方式中,S102还包括:
S1027:构建关于随机数k和私钥d的混沌映射关系式:
其中,m表示下载次数,λ1、λ2、λ3、λ4和λ5、表示控制参数且均为常数。
需要说明的是,混沌映射关系式的作用是为了保护随机数和私钥,现有技术中的混沌映射关系式,现有的二维混沌映射存在混沌参数范围不连续,参数空间中存在许多周期窗口,混沌行为较脆弱,当参数受到干扰时,会出现混沌行为很容易消失,发生混沌退化的问题。而本发明首先初始化两个参数多项式,然后通过模运算将任意值折叠到一个固定的范围内,最后从非线性多项式生成混沌映射,生成具有鲁棒混沌性的二维混沌映射,弥补了现有混沌映射关系式中存在的缺点。
S103:随机生成签名分解参数序列,根据签名分解参数序列生成数据分解参数序列。
其中,签名分解序列用于对数字签名进行分解,数据分解序列用于将软件安装包进行分解,通过这种方式,将软件安装包的相关数据在传输过程中进一步分解,降低被篡改的可能性。
需要说明的是,由于目前数字签名的应用场景越来越多,很多的攻击者已经具有一定成功率的方法能够对数字签名进行破解,这也就使得目前的单单使用数字签名方式保护数据完整性的方式不再绝对安全,因此,需要对数字签名进行二次加密,在数据传输的过程中,保护数据不被篡改。这里采用随机生成的方式生成签名分解参数序列,并基于签名分解参数序列生成数据参数序列分别对数字签名和原始数据进行分解,防止攻击者获取数字签名后直接篡改原始数据的信息。
在一种可能的实施方式中,S103具体包括子步骤S1031至S1034:
S1031:随机生成一组第一常数序列H1={h1,h2,…,hi},hi为数值在1至9之间的随机数,i=1,2,…,N;
S1032:根据第一常数序列计算签名分解参数序列P={p1,p2,…,pi}:
S1032:对第一常数序列H1={h1,h2,…,hi}进行错位相减取绝对值,得到第二常数序列H2={h1,|h2-h1|,|h3-h2|,…,|hi-hi-1|};
S1033:将第二常数序列H2中的数值0替换成1,得到第三常数序列
S1034:根据第三常数序列计算数据分解参数序列Q={q1,q2,…,qi}:
S104:根据签名分解参数序列将数字签名分解为N个子签名,根据数据分解参数序列将软件安装包分解为N个数据单元,子签名的数量与数据单元的数量相同。
需要说明的是,现有技术中数字签名和密钥是两种加密方式,本发明结合了两种加密方式,在软件安装包传输的过程中,对软件安装包和其对应的数字签名进行分解,并分解得到数量相同的子签名和数据单元,融合两种加密方式,对软件安装包进行加密,提高了软件安装包传输过程中的安全性。
可以理解的是,在步骤S103中生成的签名分解参数序列将数字签名分解成多个子签名,利用数据分解参数序列将数据分解成数量相同的多个数据单元,可以实现数字签名和软件安装包的安全传输。通过将数字签名和软件安装包分解成多个子签名和数据单元,可以使得每个数字签名和软件安装包对应的数据都变得更小,从而减少了被攻击或篡改的可能性。此外,分解数字签名和软件安装包还能够提高传输效率,使得安装包的下载和安装过程更加快速和高效。
在一种可能的实施方式中,根据签名分解参数序列将数字签名分解为N个子签名,具体为:将p1比例的数字签名作为第一个子签名,将p2比例的数字签名作为第二个子签名,将pi比例的数字签名作为第i个子签名。
根据数据分解参数序列将软件安装包分解为N个数据单元,具体为:将q1比例的数字签名作为第一个数据单元,将q2比例的数字签名作为第二个数据单元,将qi比例的数字签名作为第i个数据单元。
S105:通过第一个子签名构建第一个加密密钥,通过第一个加密密钥对第一个数据单元进行加密,运行第一个数据单元,将第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第一个数据单元的运行信息。
在一种可能的实施方式中,第i个数据单元的运行信息为Hash(Yi),其中,Hash()表示哈希运算,Y表示运行信息向量。
在另一种可能的实施方式中,第i个数据单元的运行信息还可以使用信息熵来表示。
需要说明的是,当前数据单元的加密方式是和上一个数据单元的运行情况强相关的。可以根据上一个数据单元的运行情况,快速找到篡改位置,实时报错,停止用户端继续下载被修改过的软件安装包,节省软件安装包是否完整的判断时间。
需要说明的是,由于前述生成的子签名和数据单元的数量是相同的,依次使用相应的子签名对数据单元进行加密,并记录下该数据单元的运行信息,保证每个数据单元的安全性和数据完整性。具体来说,采用基于加密的方式来实现数据单元的保护,即使用第一个子签名构建第一个加密密钥,将第一个数据单元进行加密,避免了数据在传输过程中被窃听或篡改的风险。同时,该步骤记录下第一个数据单元的运行信息,以确保后续的数据单元能够正确运行,并检测任何可能的修改或篡改。
S106:通过第i个子签名和第i-1个数据单元的运行信息构建第i个加密密钥,通过第i个加密密钥对第i个数据单元进行加密,运行第i个数据单元,将第i个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第i个数据单元的运行信息。
在一种可能的实施方式中,通过第i个子签名和第i-1个数据单元的运行信息构建第i个加密密钥Ki,具体为:
将第i个子签名αi和第i-1个数据单元的运行信息进行组合,之后进行哈希计算,构建第i个加密密钥Ki
Ki=Hash(αi,Hash(Yi-1))。
需要说明的是,在加密的过程中使用上一个数据单元的运行信息构建加密密匙,采用链式的方式保证各个数据单元之间的连续性和完整性,确保后续的数据单元在检测任何可能的修改或者篡改的同时能够正确运行。
S107:直至完成所有数据单元的加密。
S108:发送经过加密的软件安装包、软件安装包的数字签名和签名分解参数序列。
需要说明的是,服务器端将软件安装包进行加密后,将软件安装包、软件安装包的数字签名和签名分解数列发送至用户端,用户端接收到三个信息后,根据软件安装包、软件安装包的数字签名和签名分解数列对软件安装包的完整性进行验证,验证通过后进行下载。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,通过将软件安装包的数字签名分解为多个子签名,同时将软件安装包分解为同等数量的数据单元,利用子签名以及前一个数据单元的运行信息对当前数据单元进行加密,在后续下载过程中,实时验证数据单元的运行情况,可以在实际运行情况出现错误时及时地停止下载,只有在软件安装包完整的情况下,才能最终实现对于软件安装包的下载以及安装,实现对于整个软件安装包的防篡改,避免木马病毒入侵,维护信息安全。
(2)在本发明中,通过随机性的分解参数对数字签名和软件安装包进行分解,可以进一步地提升软件安装包的加密可靠性。
(3)在本发明中,当前数据单元的加密需要用到前一个数据单元的运行情况,可以保证加密链条的完整性与连续性,一旦某个数据单元被篡改,对于后面的数据单元的解密都将产生影响,提升了整个软件安装包的防篡改性。
实施例2
在一个实施例中,本发明提供的一种基于软件完整性的下载系统,应用于服务器端,用于执行实施例1中的任意一项下载方法。
本发明提供的一种基于软件完整性的下载系统可以实现上述实施例1中的下载方法的步骤和效果,为避免重复,本发明不再赘述。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,通过将软件安装包的数字签名分解为多个子签名,同时将软件安装包分解为同等数量的数据单元,利用子签名以及前一个数据单元的运行信息对当前数据单元进行加密,在后续下载过程中,实时验证数据单元的运行情况,可以在实际运行情况出现错误时及时地停止下载,只有在软件安装包完整的情况下,才能最终实现对于软件安装包的下载以及安装,实现对于整个软件安装包的防篡改,避免木马病毒入侵,维护信息安全。
(2)在本发明中,通过随机性的分解参数对数字签名和软件安装包进行分解,可以进一步地提升软件安装包的加密可靠性。
(3)在本发明中,当前数据单元的加密需要用到前一个数据单元的运行情况,可以保证加密链条的完整性与连续性,一旦某个数据单元被篡改,对于后面的数据单元的解密都将产生影响,提升了整个软件安装包的防篡改性。
实施例3
在一个实施例中,参考说明书附图2,本发明提供的另一种基于软件完整性的下载方法的流程示意图。
本发明提供的一种基于软件完整性的下载方法,应用于用户端,包括:
S201:发起对于软件安装包的下载请求。
在实际使用过程中,下载请求的形式不局限于触控点击,鼠标指针点击或者语音指令点击等下载请求,本发明对下载请求的形式不做限定。
S202:接收经过加密的软件安装包、软件安装包的数字签名和签名分解参数序列。
可以理解的是,服务器端发送的软件安装包之前,已经生成了软件安装包相对应的数字签名和签名分解序列,在用户端接收三个信息后,会分别进行验证,只有通过了验证,才能保证服务器端发送的软件安装包是用户端想要的软件安装包,通过验证信息可以快速鉴定出软件安装包在从服务器端发送至用户端的过程中是否被修改。
S203:验证数字签名,在数字签名验证通过的情况下,根据签名分解参数序列生成数据分解参数序列。
需要说明的是,接收的软件安装包和其对应的数字签名和签名分解参数序列,还缺少一个数据分解参数序列,因为签名分解参数序列和数据分解参数序列具有对应关系,在数字签名经过验证后,实际上已经确定了软件安装包具有一定的完整性,也就是未被修改,但是,为了避免数字签名被破解,软件安装包被修改我们不知道的情况,利用签名分解参数序列生成的数据分解参数序列,对软件安装包进行进一步的验证,确保接收到的软件安装包是完整的,未被修改的。
在一种可能的实施方式中,签名分解参数序列P={p1,p2,…,pi}:
根据签名分解参数序列将数字签名分解为N个子签名,具体为:将p1比例的数字签名作为第一个子签名,将p2比例的数字签名作为第二个子签名,将pi比例的数字签名作为第i个子签名。
在一种可能的实施方式中,S203具体包括子步骤S2031至S2035:
S2031:根据私钥d计算公钥Q,其中,Q=dG,d表示私钥,G表示基点;
S2032:计算l=SHA-1(M),其中,SHA-1(M)表示使用SHA-1计算的M的数字摘要;
S2033:计算P=(s+l)G+rQ=(X1,Y1),若P=O,则签名无效;
S2034:将坐标X1转换为整数,令r’=X1 modn;
S2035:若r=r’,则确定数字签名验证通过。
在一种可能的实施方式中,S203还包括子步骤S2036和S2037:
S2036:接收关于随机数k和私钥d的混沌映射关系式:
其中,m表示下载次数,λ1、λ2、λ3、λ4和λ5、表示控制参数且均为常数;
S2037:计算本次下载的随机数k和私钥d。
S204:根据签名分解参数序列将数字签名分解为N个子签名,根据数据分解参数序列将软件安装包分解为N个数据单元。
需要说明的是,现有技术中数字签名和密钥是两种加密方式,本发明结合了两种加密方式,在软件安装包传输的过程中,对软件安装包和其对应的数字签名进行分解,并分解得到数量相同的子签名和数据单元,融合两种加密方式,对软件安装包进行加密,提高了软件安装包传输过程中的安全性。
在一种可能的实施方式中,随机生成一组第一常数序列H1={h1,h2,…,hi},hi为数值在1至9之间的随机数,i=1,2,…,N;
根据第一常数序列计算签名分解参数序列P={p1,p2,…,pi}:
对第一常数序列H1={h1,h2,…,hi}进行错位相减取绝对值,得到第二常数序列H2={h1,|h2-h1|,|h3-h2|,…,|hi-hi-1|};
将第二常数序列H2中的数值0替换成1,得到第三常数序列
根据第三常数序列计算数据分解参数序列Q={q1,q2,…,qi}:
根据数据分解参数序列将软件安装包分解为N个数据单元,具体为:将q1比例的数字签名作为第一个数据单元,将q2比例的数字签名作为第二个数据单元,将qi比例的数字签名作为第i个数据单元。
需要说明的是,分段加密可以防止加密和解密的计算量过大,导致的加密和解密过程的效率低下,分段加密可以将加密和解密计算量分散到多个部分,提高加密和解密的效率,也有利于加密和解密的并行计算,提高加密和解密的速度。
S205:通过第一个子签名计算第一个解密密钥,通过第一个解密密钥对第一个数据单元进行解密,下载并运行第一个数据单元,将第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第一个数据单元的运行信息。
需要说明的是,S205的解密过程是在保护软件包完整性和安全性的同时,将软件包解密并下载到用户设备中。在这个过程中,首先通过第一个子签名计算第一个解密密钥,然后使用该密钥对第一个数据单元进行解密。如果解密后的数据与原始软件包不同,则表明软件包已被篡改,无法正确运行,下载过程将被终止。否则,软件包将成功下载到用户设备中,并且第一个数据单元的运行函数的函数名会被记录在运行信息中,并根据第一数据单元的运行函数的运行信息链式反应,依次生成后续的解密密钥对多个数据单元进行解密。
在一种可能的实施方式中,第i个数据单元的运行信息为Hash(Yi),其中,Hash()表示哈希运算,Y表示运行信息向量。
S206:通过第i个子签名和第i-1个数据单元的运行信息构建第i个解密密钥,通过第i个解密密钥对第i个数据单元进行解密,下载并运行第i个数据单元,将第i个数据单元的运行函数的函数名依次记录在运行信息向量中,作为第i个数据单元的运行信息。
在一种可能的实施方式中,通过第i个子签名和第i-1个数据单元的运行信息构建第i个解密密钥Di,具体为:
将第i个子签名αi和第i-1个数据单元的运行信息进行组合,之后进行哈希计算,构建第i个解密密钥Di
Di=Hash(αi,Hash(Yi-1))。
需要说明的是,软件安装包下载并解密的过程中,根据签名分解参数序列和数据分解参数序列生成解密密钥,并用解密密钥对每个数据单元进行解密,最后记录下每个数据单元的运行信息。其中,每个解密密钥的生成都依赖于前一个数据单元的运行信息,这样可以确保只有前一个数据单元的运行信息与当前数据单元的签名分解参数序列匹配时才能正确生成解密密钥,从而保证了数据的完整性和安全性。
S207:直至完成所有数据单元的解密以及下载。
可以理解的是,在服务器端软件安装包被拆解成多个数据单元,每个数据单元都有相应的子签名,在用户端接收到软件安装包后,依次对接收到的数据单元进行验证解密,最终得到完整的软件安装包,在验证的过程中,如果发现某一个数据单元验证不通过,则证明软件安装包在传输过程中被修改了,这时可以终止下载和验证,如果最终全部通过验证,则证明软件安装包未被修改,整个软件安装包是完整的。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,通过将软件安装包的数字签名分解为多个子签名,同时将软件安装包分解为同等数量的数据单元,利用子签名以及前一个数据单元的运行信息对当前数据单元进行加密,在后续下载过程中,实时验证数据单元的运行情况,可以在实际运行情况出现错误时及时地停止下载,只有在软件安装包完整的情况下,才能最终实现对于软件安装包的下载以及安装,实现对于整个软件安装包的防篡改,避免木马病毒入侵,维护信息安全。
(2)在本发明中,通过随机性的分解参数对数字签名和软件安装包进行分解,可以进一步地提升软件安装包的加密可靠性。
(3)在本发明中,当前数据单元的加密需要用到前一个数据单元的运行情况,可以保证加密链条的完整性与连续性,一旦某个数据单元被篡改,对于后面的数据单元的解密都将产生影响,提升了整个软件安装包的防篡改性。
实施例4
在一个实施例中,本发明提供的一种基于软件完整性的下载系统,应用于用户端,用于执行实施例3中的任意一项下载方法。
本发明提供的一种基于软件完整性的下载系统可以实现上述实施例3中的下载方法的步骤和效果,为避免重复,本发明不再赘述。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,通过将软件安装包的数字签名分解为多个子签名,同时将软件安装包分解为同等数量的数据单元,利用子签名以及前一个数据单元的运行信息对当前数据单元进行加密,在后续下载过程中,实时验证数据单元的运行情况,可以在实际运行情况出现错误时及时地停止下载,只有在软件安装包完整的情况下,才能最终实现对于软件安装包的下载以及安装,实现对于整个软件安装包的防篡改,避免木马病毒入侵,维护信息安全。
(2)在本发明中,通过随机性的分解参数对数字签名和软件安装包进行分解,可以进一步地提升软件安装包的加密可靠性。
(3)在本发明中,当前数据单元的加密需要用到前一个数据单元的运行情况,可以保证加密链条的完整性与连续性,一旦某个数据单元被篡改,对于后面的数据单元的解密都将产生影响,提升了整个软件安装包的防篡改性。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种基于软件完整性的下载方法,应用于服务器端,其特征在于,包括:
S101:接收用户端对于软件安装包的下载请求;
S102:生成所述软件安装包的数字签名;
S103:随机生成签名分解参数序列,根据所述签名分解参数序列生成数据分解参数序列;
S104:根据所述签名分解参数序列将所述数字签名分解为N个子签名,根据所述数据分解参数序列将所述软件安装包分解为N个数据单元,所述子签名的数量与所述数据单元的数量相同;
S105:通过第一个子签名构建第一个加密密钥,通过所述第一个加密密钥对所述第一个数据单元进行加密,运行所述第一个数据单元,将所述第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为所述第一个数据单元的运行信息;
S106:通过第i个子签名和第i-1个数据单元的运行信息构建第i个加密密钥,通过所述第i个加密密钥对第i个数据单元进行加密,运行所述第i个数据单元,将所述第i个数据单元的运行函数的函数名依次记录在所述运行信息向量中,作为所述第i个数据单元的运行信息;
S107:直至完成所有数据单元的加密;
S108:发送经过加密的所述软件安装包、所述软件安装包的数字签名和所述签名分解参数序列。
2.根据权利要求1所述的下载方法,其特征在于,S102具体包括:
S1021:构建椭圆曲线,所述椭圆曲线的参数包括:p,a,b,G,n,h,其中,p表示素数,a表示第一椭圆系数,b表示第二椭圆系数,G表示基点,n表示G的阶数,h表示余因子;
S1022:选择一个随机数k,计算kG=(X1,Y1),将坐标X1转换为整数;
S1023:r=X1 mod n,若r=0,则回到S1022,否则进入S1024;
S1024:计算l=SHA-1(M),并将l转换成整数,M表示原始数据,SHA-1(M)表示使用SHA-1计算的M的数字摘要;
S1025:构建签名方程,k=l+s+drmodn,利用私钥d计算s=k-l-r d(mod n),若s=0,则回到S1022,否则进入S1026;
S1026:将(r,s)作为所述软件安装包的数字签名。
3.根据权利要求2所述的下载方法,其特征在于,S102还包括:
S1027:构建关于随机数k和私钥d的混沌映射关系式:
其中,m表示下载次数,λ1、λ2、λ3、λ4和λ5、表示控制参数且均为常数。
4.根据权利要求1所述的下载方法,其特征在于,S103具体包括:
S1031:随机生成一组第一常数序列H1={h1,h2,…,hi},hi为数值在1至9之间的随机数,i=1,2,…,N;
S1032:根据所述第一常数序列计算所述签名分解参数序列P={p1,p2,…,pi}:
S1032:对所述第一常数序列H1={h1,h2,…,hi}进行错位相减取绝对值,得到第二常数序列H2={h1,|h2-h1|,|h3-h2|,…,|hi-hi-1|};
S1033:将所述第二常数序列H2中的数值0替换成1,得到第三常数序列
S1034:根据所述第三常数序列计算所述数据分解参数序列Q={q1,q2,…,qi}:
所述根据所述签名分解参数序列将所述数字签名分解为N个子签名,具体为:
将p1比例的数字签名作为第一个子签名,将p2比例的数字签名作为第二个子签名,将pi比例的数字签名作为第i个子签名;
所述根据所述数据分解参数序列将所述软件安装包分解为N个数据单元,具体为:
将q1比例的数字签名作为第一个数据单元,将q2比例的数字签名作为第二个数据单元,将qi比例的数字签名作为第i个数据单元。
5.根据权利要求1所述的下载方法,其特征在于,S105还包括:
所述第i个数据单元的运行信息为Hash(Yi),其中,Hash()表示哈希运算,Y表示运行信息向量;
所述通过所述第i个子签名和所述第i-1个数据单元的运行信息构建第i个加密密钥Ki,具体为:
将所述第i个子签名αi和所述第i-1个数据单元的运行信息进行组合,之后进行哈希计算,构建第i个加密密钥Ki
Ki=Hash(αi,Hash(Yi-1))。
6.一种基于软件完整性的下载方法,应用于用户端,其特征在于,包括:
S201:发起对于软件安装包的下载请求;
S202:接收经过加密的所述软件安装包、所述软件安装包的数字签名和签名分解参数序列;
S203:验证所述数字签名,在所述数字签名验证通过的情况下,根据所述签名分解参数序列生成数据分解参数序列;
S204:根据所述签名分解参数序列将所述数字签名分解为N个子签名,根据所述数据分解参数序列将所述软件安装包分解为N个数据单元;
S205:通过所述第一个子签名计算第一个解密密钥,通过所述第一个解密密钥对所述第一个数据单元进行解密,下载并运行所述第一个数据单元,将所述第一个数据单元的运行函数的函数名依次记录在运行信息向量中,作为所述第一个数据单元的运行信息;
S206:通过所述第i个子签名和所述第i-1个数据单元的运行信息构建第i个解密密钥,通过所述第i个解密密钥对所述第i个数据单元进行解密,下载并运行所述第i个数据单元,将所述第i个数据单元的运行函数的函数名依次记录在所述运行信息向量中,作为所述第i个数据单元的运行信息;
S207:直至完成所有数据单元的解密以及下载。
CN202310498377.3A 2023-05-05 2023-05-05 一种基于软件完整性的下载方法及系统 Active CN116455584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310498377.3A CN116455584B (zh) 2023-05-05 2023-05-05 一种基于软件完整性的下载方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310498377.3A CN116455584B (zh) 2023-05-05 2023-05-05 一种基于软件完整性的下载方法及系统

Publications (2)

Publication Number Publication Date
CN116455584A CN116455584A (zh) 2023-07-18
CN116455584B true CN116455584B (zh) 2023-09-29

Family

ID=87125583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310498377.3A Active CN116455584B (zh) 2023-05-05 2023-05-05 一种基于软件完整性的下载方法及系统

Country Status (1)

Country Link
CN (1) CN116455584B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203721A (zh) * 2017-03-01 2017-09-26 广西发发科技有限公司 一种通用游戏反作弊系统
CN109309645A (zh) * 2017-07-26 2019-02-05 中国人民解放军装备学院 一种软件分发安全保护方法
CN115509556A (zh) * 2022-09-27 2022-12-23 重庆长安汽车股份有限公司 一种应用管理方法、装置、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5405986B2 (ja) * 2008-11-26 2014-02-05 パナソニック株式会社 ソフトウェア更新システム、管理装置、記録媒体及び集積回路
JP2012003679A (ja) * 2010-06-21 2012-01-05 Kyocera Mita Corp 画像形成装置用追加アプリケーションのセキュリティ確保方法、画像形成システム及び画像形成装置
US8792637B2 (en) * 2011-11-22 2014-07-29 Combined Conditional Access Development & Support, LLC Downloading of data to secure devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203721A (zh) * 2017-03-01 2017-09-26 广西发发科技有限公司 一种通用游戏反作弊系统
CN109309645A (zh) * 2017-07-26 2019-02-05 中国人民解放军装备学院 一种软件分发安全保护方法
CN115509556A (zh) * 2022-09-27 2022-12-23 重庆长安汽车股份有限公司 一种应用管理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN116455584A (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
US20200076614A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
CN107094108B (zh) 连接到数据总线的部件和在该部件中实现加密功能的方法
US20050271207A1 (en) Method and system for chaotic digital signature, encryption, and authentication
CA2555322C (en) One way authentication
Alam et al. Digital image authentication and encryption using digital signature
US20160182230A1 (en) Secure token-based signature schemes using look-up tables
CN110663215B (zh) 在白盒场景中的椭圆曲线点乘设备和方法
JP2009529832A (ja) 発見不可能、即ち、ブラック・データを使用するセキュアなデータ通信
WO2008106848A1 (fr) Réseau de sécurité d'un terminal sans fil et procédé de verrouillage de carte sur la base du chiffre de clé publique de courbe elliptique
JP7259868B2 (ja) システムおよびクライアント
Zhang et al. The Improvement of digital signature algorithm based on elliptic curve cryptography
US20220321363A1 (en) Collation system, client, and server
JP7302606B2 (ja) システムおよびサーバ
CN112448941A (zh) 认证系统和用于认证微控制器的方法
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
US20150006900A1 (en) Signature protocol
CN115001775A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US10673610B2 (en) System and method for protecting a cryptographic device against fault attacks while performing cryptographic non-linear operations using linear error correcting codes
WO2018047120A1 (en) A system and method for data block modification detection and authentication codes
WO2013016736A2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
CN116455584B (zh) 一种基于软件完整性的下载方法及系统
CN116305080A (zh) 一种密码通用检测方法
US7512232B2 (en) Generation and validation of short digital signatures with implicit message embedding
Chen et al. A secure YS-like user authentication scheme

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
GR01 Patent grant
GR01 Patent grant