CN116248291B - 一种消费机的签名验签方法及*** - Google Patents

一种消费机的签名验签方法及*** Download PDF

Info

Publication number
CN116248291B
CN116248291B CN202310045616.XA CN202310045616A CN116248291B CN 116248291 B CN116248291 B CN 116248291B CN 202310045616 A CN202310045616 A CN 202310045616A CN 116248291 B CN116248291 B CN 116248291B
Authority
CN
China
Prior art keywords
application program
hash
signature
preset
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
CN202310045616.XA
Other languages
English (en)
Other versions
CN116248291A (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.)
Shenzhen Sanstar Communication Technology Co ltd
Original Assignee
Shenzhen Sanstar Communication 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 Shenzhen Sanstar Communication Technology Co ltd filed Critical Shenzhen Sanstar Communication Technology Co ltd
Priority to CN202310045616.XA priority Critical patent/CN116248291B/zh
Publication of CN116248291A publication Critical patent/CN116248291A/zh
Application granted granted Critical
Publication of CN116248291B publication Critical patent/CN116248291B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种消费机的签名验签方法及***,运用于数据验证领域;本发明通过将应用程序进行二进制位编码处理,生成应用程序对应的二进制位编码,根据二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配编码位的特定哈希签名算法,应用特定哈希签名算法对应用程序进行哈希运算,运算得出应用程序的二进制签名值,基于应用程序中存在的至少一个或多个二进制位编码,并依据二进制位编码的编码位由少至多的递进序列,对应用程序进行编排组合,组合生成应用程序的公钥信息,根据应用程序对应的私钥信息,对应用程序的公钥信息进行验证,生成验签完毕的数字签名,将数字签名录入在应用程序中,完成验签。

Description

一种消费机的签名验签方法及***
技术领域
本发明涉及数据验证领域,特别涉及为一种消费机的签名验签方法及***。
背景技术
随着国家越来越重视教育信息化建设,学校也加大了对校园信息化、智能化的投入并推出智慧校园、智慧食堂,而消费机的使用正是智慧食堂里的一个缩影,在消费机上刷卡或扫码支付后取餐不仅能提高食堂效率、减少交易出错概率,同时也可以科学准确的统计消费和库存数据,减少浪费,随着校园信息化的建设,消费机也会越来越普及。
消费机出厂时会先预装商户代理服务商的限制支付并布局到商户的消费设备,为避免有些商户拿到消费机后,通过安装其他应用程序后与其它服务商进行合作,因此需要在消费机上设有限制应用程序的验签签名,以保证商户代理服务商的权益。
发明内容
本发明旨在解决避免有些商户拿到消费机后,通过安装其他应用程序后与其它服务商进行合作的问题,提供一种消费机的签名验签方法及***。
本发明为解决技术问题采用如下技术手段:
本发明提供一种消费机的签名验签方法,包括以下步骤:
获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的安装环境信息,将所述安装环境信息和所述安装要求信息进行比较,判断所述应用程序的安装环境是否满足预设安装要求;
若满足,则向所述应用程序提供读取空白内存预存储数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
根据应用程序对应的所述预设私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
进一步地,所述应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密的步骤中,包括:
对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
判断预设签名公钥是否能解密所述待验签的应用程序;
若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
所述根据所述应用程序对应的私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签的步骤中,包括:
基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
进一步地,所述则将所述应用程序进行二进制位编码处理的步骤中,包括:
根据所述应用程序预设的待签名次数,确定待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
生成所述公钥信息的签名集合;
获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
所述从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值的步骤中,包括:
针对每个所述对应的哈希签名算法对应用程序进行处理,在所述应用程序中每个位置的哈希数据点中,特征数据点对一一对应的哈希编码对,通过对哈希编码对中每个位置对应的哈希数据点的权重进行比较,确定权重较大的目标数据哈希点,基于所述每个位置对应的所述哈希数据点确定哈希编码对应的二值码,其中,所述权重用于表征所述哈希数据点对于计算所述哈希编码所对应的相似度系数;
基于每个哈希编码对应的二值码,构建所对应的相似度矩阵,其中,所述相似度矩阵具备每个所述哈希编码与每个所述哈希编码所对应的所述二值码之间的差异;
基于所述相似度矩阵动态更新所述签名值的变化参数。
进一步地,所述基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息的步骤中,包括:
基于所述哈希签名算法对所述待处理数据进行编码,得到待验证的哈希编码顺序,基于所述哈希编码顺序构建哈希特征数据库;
对所述哈希编码顺序进行预处理,将所述哈希编码顺序在所述哈希特征数据库中划分为多个互不相交的子哈希编码,得到每一个所述子哈希编码作为所述哈希特征数据库的索引;
在所述哈希特征数据库中基于所述子哈希编码对所述哈希编码顺序进行排列,生成各个编码位的排列次序。
本发明还提供一种消费机的签名验签***,其特征在于,包括:
获取模块,用于获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的安装环境信息,将所述安装环境信息和所述安装要求信息进行比较,判断所述应用程序的安装环境是否满足预设安装要求;
判断模块,用于若满足,则向所述应用程序提供读取空白内存预储数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
执行模块,用于若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
验证模块,用于根据所述应用程序对应的私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
进一步地,所述判断模块还包括:
生成单元,用于对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
第二判断单元,用于判断公钥信息是否能解密所述待验签的应用程序;
第二执行单元,用于若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
进一步地,所述判断模块还包括:
计算单元,用于基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
第二计算单元,用于根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
第二生成单元,用于根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
进一步地,所述执行模块还包括:
处理单元,用于根据所述应用程序预设的待签名次数,确定所述待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
第三生成单元,用于生成所述公钥信息的签名集合;
获取单元,用于获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
本发明提供了一种消费机的签名验签方法及***,具有以下有益效果:
本发明过将应用程序进行二进制位编码处理,生成应用程序对应的二进制位编码,根据二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配编码位的特定哈希签名算法,应用特定哈希签名算法对应用程序进行哈希运算,运算得出应用程序的二进制签名值,基于应用程序中存在的至少一个或多个二进制位编码,并依据二进制位编码的编码位由少至多的递进序列,对应用程序进行编排组合,组合生成应用程序的公钥信息,根据应用程序对应的私钥信息,对应用程序的公钥信息进行验证,生成验签完毕的数字签名,将数字签名录入在应用程序中,完成验签;相对于目前常规的签名验签过程,本发明除了防止商户下载异常应用程序绕过服务商进行其他合作,同时避免了因各编码值的取值范围较大,导致需要设置大量不同的候选哈希签名算法的情况发生,进而在配置相应哈希签名算法时降低了应用程序的验签成本。
附图说明
图1为本发明一种消费机的签名验签方法一个实施例的流程示意图;
图2为本发明一种消费机的签名验签***一个实施例的结构框图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明,本发明为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考附图1,为本发明一实施例中的一种消费机的签名验签方法,包括:
S1:获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的当前环境信息,将所述当前环境信息和所述安装要求信息进行比较,判断所述应用程序的当前环境是否满足预设安装要求;
S2:若满足,则向所述应用程序提供读取空白内存数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
S3:若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的特定哈希签名算法,应用所述特定哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个或多个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
S4:根据所述应用程序对应的私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
在本实施例中,***通过扫描待安装应用程序,以识别该应用程序的安装环境和安全问题,执行预先设有的安装环境检测指令,对应用程序进行扫描后,通过预先设有的服务端查询该应用程序的安装要求信息(如:操作***等级要求,配置高低要求等),而后获取该应用程序当前的环境信息,将当前环境信息与安装要求信息进行比对,以确定当前环境是否满足预先设定的安装要求,并执行对应的步骤;例如,***检测到当前环境能够满足操作***等级要求,则此时***会判定当前环境能够满足预先设定的安装要求,即***会向该应用程序提供其他可读取的空白内存空间,使应用程序通过读取这些空白内存数据,得到进入***的权限;例如,***检测到当前环境无法满足配置要求等级时,则此时***会判定当前环境无法满足预先设定的安装要求,即***无法向该应用程序提供任何读取权利,因为该应用程序无法被当前配置或当前操作***的***所监控,无法确认该应用程序的安全性;而后***应用预先设定有的私钥信息对该应用程序进行配对,通过配对将应用程序中的附带文件进行解密,生成该应用程序的数据摘要,将这些数据摘要与***预收录有的数据文本进行差异性比对,即可判断这些数据摘要是否与数据文本相同(对比其摘要信息与之前存储的数据摘要,当完全相同且不能多也不能少,才能进行验签),以执行对应的步骤;例如,当数据摘要跟预存储的数据文本相同时,此时***将应用程序进行二进制位编码处理,生成应用程序对应的二进制位编码,根据二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配编码位的特定哈希签名算法,应用特定哈希签名算法对应用程序进行哈希运算,运算得出应用程序的二进制签名值,基于应用程序中存在的至少一个或多个二进制位编码,并依据二进制位编码的编码位由少至多的递进序列,对应用程序进行编排组合,组合生成应用程序的公钥信息;而后***根据应用程序对应的私钥信息,将应用程序的公钥信息进行验证,以生成验签完毕的数字签名,此时***将该数字签名录入在该应用程序中,即可完成该应用程序的签名验签过程,即***允许该应用程序进行安装。
在具体实施例中,签名验签过程如下:
1.安装前先对apk进行签名:执行指令:java-jar whtyApkSignTool.jar-keystore android.keystore-alias android.keystore-storepass sanstar-inputtest.apk-output test_singed.apk。其原理:whtyApkSignTool.jar先对apk中的每一个文件做一次base64+hash运算,将结果保存在文件META-INF/MANIFEST.MF中;再对MANIFEST.MF整个文件做一次base64+hash运算,将结果保存到CERT.SF文件的头属性中,最后对MANIFEST.MF文件中的各个属性块分别做一次base64+hash运算,结果存放到CERT.SF文件的属性块中;通过私钥keystore对CERT.SF签名,并将签名文件和保存有公钥信息的数字证书保存到CERT.RSA中;完成签名过程。
2.对apk进行验签:***端内置签名认证包TYPackageVerifier.jar,通过调用验签方法verifyApk对apk里的文件CERT.RSA所包含的公钥对数字签名进行解密,将解密结果与CERT.SF文件hash运算后的结果进行对比,检验CERT.SF是否被篡改;然后使用CERT.SF校验MANIFEST.MF,检验MANIFEST.MF是否被篡改;最后使用MANIFEST.MF来校验所有文件,检验所有文件是否有篡改或者文件被删除或者有新文件添加;完成验签过程。
在本实施例中,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密的步骤中,包括:
对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
判断预设签名公钥是否能解密所述待验签的应用程序;
若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
在本实施例中,***通过对该应用程序进行读取后,应用哈希签名算法对应用程序的各个文件加密为预先设有的对应类型数据摘要后,以base64的数据格式对这些数据摘要进行存储后,应用预先设有的私钥信息对这些数据摘要进行单向签名,生成待验签的应用程序,并判断预先设有的签名公钥能否解密该待验签的应用程序,以执行对应的步骤;例如,***得知预先设定的签名公钥无法解密该待验签的应用程序,则此时***会判定无法确定消息确实是由发送方签名并发出来的,可能有人恶意假冒发送方的签名并发送应用程序至***中;例如,***得知预先设定的签名公钥能够解密该待验签的应用程序,则此时***会生成私钥信息与公钥信息的比对数据。
需要说明的是:公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密,当然也可以反过来,用私钥加密,用对应的公钥进行解密,签名是发送方为发送的文件写上一个自己的签名,所以需要使用的是自己(发送方)的私钥。
在本实施例中,根据所述应用程序对应的私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签的步骤中,包括:
基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
在本实施例中,***根据预设的散列运算方式处理待签名消息并得到对应的消息摘要,例如将待签名消息作为输入数据,根据SM3算法处理该数据并输出消息摘要,(SM3算法要求摘要的比特长度为256比特,SM3算法是单向的哈希运算,可以根据待签名消息处理为消息摘要,但却不能根据消息摘要反推出待签名消息);签名方对消息摘要进行切块以得到多个摘要子块,消息摘要的比特长度为256比特,按照32比特的分块长度对消息摘要进行切块,将256比特切割为长度为32比特的8个摘要子块,分别为block1、block2…block8,当然也可以切割为长度为16比特的16个摘要子块,具体可以根据应用需求确定摘要子块的长度和个数;获得多个摘要子块后,根据预设的映射方式确定各个摘要子块对应的密钥分量索引,根据消息摘要的摘要子块通过指定算法计算使用的签名密钥分量,以参与该摘要子块的签名计算,签名方再根据各个摘要子块对应的密钥分量索引来计算每个摘要子块对应的消息认证码,确定了密钥分量索引后,在提前预置的密钥分量序列中确定出摘要子块对应的密钥分量,一个摘要子块对应着一个消息认证码,8个block对应8个消息认证码,即H1、H2…H8;基于多个摘要子块对应的消息认证码确定待签名消息对应的数字签名,相当于对原来排序固定的密钥分量序列进行数据处理,并根据密钥分量索引将部分或者全部的密钥分量进行重新排序,有些密钥分量也会多次出现,最终获得数字签名。
在本实施例中,则将所述应用程序进行二进制位编码处理的步骤中,包括:
根据所述应用程序预设的待签名次数,确定所述待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
生成所述公钥信息的签名集合;
获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
在本实施例中,目标编码值为待处理数据中的数值,与预设的哈希公钥一一对应,签名次数通常从1开始,每执行一次签名进行递增,可以通过将已完成的签名操作的次数加1得到;根据签名次数,从预设的哈希公钥中确定待处理数据中各目标编码值相应的目标签名公钥,将待处理数据中的各目标编码值转化成预设进制的数值;其中,预设进制的数值与预设签名集合中签名次数相等;将签名次数作为目标签名簇;根据目标编码值的数值转化结果,确定相应的目标签名公钥;将待处理数据中的各目标编码值转化成预设进制的数值,使得针对该待签名消息的签名操作可以与相应预设的哈希公钥相匹配,从而基于该预设的哈希公钥完成对该待签名消息的签名操作,进而有助于提高该签名操作的效率;根据目标编码值的数值转化结果,能够在预先构建的哈希公钥中确定相应的目标签名公钥,从而无需对待应用程序的签名验签再进行复杂的计算,进而有助于提高对待应用程序进行签名的效率。
在本实施例中,从预设的哈希签名算法集中选取具有适配所述编码位的特定哈希签名算法,应用所述特定哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值的步骤中,包括:
针对每个所述特定哈希签名算法对应用程序进行处理,在所述应用程序中每个位置的哈希数据点中,确定权重较大的目标数据哈希点,基于所述每个位置对应的所述哈希数据点确定哈希编码对应的二值码,其中,所述权重用于表征所述哈希数据点对于计算所述哈希编码所对应的相似度系数;
基于每个哈希编码对应的二值码,构建所对应的相似度矩阵,其中,所述相似度矩阵具备每个所述哈希编码与每个所述哈希编码所对应的所述二值码之间的差异;
基于所述相似度矩阵动态更新所述签名值的变化参数。
在本实施例中,***针对应用程序通过特定哈希签名算法进行处理,生成应用程序中特征数据点对应的待成型矩阵,并表示为多个格子组成的矩形,矩形中每一格对应一个维度的数据,特征数据点x1的维度为m1,特征数据点y1的维度为m2,m1与m2可以是相等的,也可以是不等的,得到了特征数据点对一一对应的哈希编码对,哈希编码可以表示为多个格子组成的矩形,每一格对应于一个哈希数据点,也即一个维度的数据;哈希编码对中,每个哈希编码同一维度的哈希数据点,通过对哈希编码对中每个位置对应的哈希数据点的权重进行比较,得到权重较大的哈希数据点作为目标哈希数据点,哈希编码对中的哈希数据点对的数量是m3,因此可以得到m3个目标哈希数据点,对每个目标哈希数据点进行二值化处理,得到二值化数据点,并基于目标哈希数据点对应的哈希数据点对的位置,依次对二值化数据点进行组合,即由待成型矩阵组合得到相似度矩阵;从签名值1更新得到二值码1,二值码1的维度也为m3,也即,哈希编码对的二值码的编码长度与哈希编码对中每个哈希编码的编码长度相同,得到精确度更高的签名值变化参数,提高应用程序进行签名验签的效率。
在本实施例中,基于所述应用程序中存在的至少一个或多个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息的步骤中,包括:
基于所述哈希签名算法对所述待处理数据进行编码,得到待验证的哈希编码顺序,基于所述哈希编码顺序构建哈希特征数据库;
对所述哈希编码顺序进行预处理,将所述哈希编码顺序在所述哈希特征数据库中划分为多个互不相交的子哈希编码,得到每一个所述子哈希编码作为所述哈希特征数据库的索引;
在所述哈希特征数据库中基于所述子哈希编码对所述哈希编码顺序进行排列,生成各个编码位的排列次序。
在本实施例中,***通过哈希签名算法对待处理数据进行编码,得到待验证的哈希编码顺序,基于哈希编码顺序创建哈希特征数据库,在哈希特征数据库的哈希层和阈值层中设置阈值函数,将连续的特征哈希向量转化为二值哈希编码,得到的二值哈希编码进行预处理,将预处理的哈希编码连续划分为多个互不相交的子哈希编码,使用原哈希编码数据进行变换,使变换后的数据具有线性不相关性且尽量保证原有数据之间的关系,对原哈希编码训练生成投影向量,然后将原哈希编码与生成的投影向量相乘得到分布均匀的哈希编码,并将哈希编码连续划分为多个互不相交的子哈希编码,得到的每一个子哈希编码能够作为哈希特征数据库的索引,输入待查询的签名值信息,对每一个哈希编码检索,并获取全部的相似编码位候选集,然后计算编码位候选集中所有签名值的汉明距离并进行排序,得到编码位候选集中各个编码位的排列次序。
参考附图2,为本发明一实施例中一种消费机的签名验签***,包括:
获取模块10,用于获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的当前环境信息,将所述当前环境信息和所述安装要求信息进行比较,判断所述应用程序的当前环境是否满足预设安装要求;
判断模块20,用于若满足,则向所述应用程序提供读取空白内存数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
执行模块30,用于若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的特定哈希签名算法,应用所述特定哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个或多个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
验证模块40,用于根据所述应用程序对应的私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
在本实施例中,获取模块10通过扫描待安装应用程序,以识别该应用程序的安装环境和安全问题,执行预先设有的安装环境检测指令,对应用程序进行扫描后,通过预先设有的服务端查询该应用程序的安装要求信息(如:操作***等级要求,配置高低要求等),而后获取该应用程序当前的环境信息,将当前环境信息与安装要求信息进行比对,以确定当前环境是否满足预先设定的安装要求,并执行对应的步骤;例如,***检测到当前环境能够满足操作***等级要求,则此时***会判定当前环境能够满足预先设定的安装要求,即***会向该应用程序提供其他可读取的空白内存空间,使应用程序通过读取这些空白内存数据,得到进入***的权限;例如,***检测到当前环境无法满足配置要求等级时,则此时***会判定当前环境无法满足预先设定的安装要求,即***无法向该应用程序提供任何读取权利,因为该应用程序无法被当前配置或当前操作***的***所监控,无法确认该应用程序的安全性;而后判断模块20应用预先设定有的私钥信息对该应用程序进行配对,通过配对将应用程序中的附带文件进行解密,生成该应用程序的数据摘要,将这些数据摘要与***预收录有的数据文本进行差异性比对,即可判断这些数据摘要是否与数据文本相同(对比其摘要信息与之前存储的数据摘要,当完全相同且不能多也不能少,才能进行验签),以执行对应的步骤;例如,当数据摘要跟预存储的数据文本相同时,此时执行模块30将应用程序进行二进制位编码处理,生成应用程序对应的二进制位编码,根据二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配编码位的特定哈希签名算法,应用特定哈希签名算法对应用程序进行哈希运算,运算得出应用程序的二进制签名值,基于应用程序中存在的至少一个或多个二进制位编码,并依据二进制位编码的编码位由少至多的递进序列,对应用程序进行编排组合,组合生成应用程序的公钥信息;而后验证模块40根据应用程序对应的私钥信息,将应用程序的公钥信息进行验证,以生成验签完毕的数字签名,此时***将该数字签名录入在该应用程序中,即可完成该应用程序的签名验签过程,即***允许该应用程序进行安装。
在具体实施例中,签名验签过程如下:
1.安装前先对apk进行签名:执行指令:java-jar whtyApkSignTool.jar-keystore android.keystore-alias android.keystore-storepass sanstar-inputtest.apk-output test_singed.apk。其原理:whtyApkSignTool.jar先对apk中的每一个文件做一次base64+hash运算,将结果保存在文件META-INF/MANIFEST.MF中;再对MANIFEST.MF整个文件做一次base64+hash运算,将结果保存到CERT.SF文件的头属性中,最后对MANIFEST.MF文件中的各个属性块分别做一次base64+hash运算,结果存放到CERT.SF文件的属性块中;通过私钥keystore对CERT.SF签名,并将签名文件和保存有公钥信息的数字证书保存到CERT.RSA中;完成签名过程。
2.对apk进行验签:***端内置签名认证包TYPackageVerifier.jar,通过调用验签方法verifyApk对apk里的文件CERT.RSA所包含的公钥对数字签名进行解密,将解密结果与CERT.SF文件hash运算后的结果进行对比,检验CERT.SF是否被篡改;然后使用CERT.SF校验MANIFEST.MF,检验MANIFEST.MF是否被篡改;最后使用MANIFEST.MF来校验所有文件,检验所有文件是否有篡改或者文件被删除或者有新文件添加;完成验签过程。
在本实施例中,判断模块还包括:
生成单元,用于对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
第二判断单元,用于判断预设签名公钥是否能解密所述待验签的应用程序;
第二执行单元,用于若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
在本实施例中,***通过对该应用程序进行读取后,应用哈希签名算法对应用程序的各个文件加密为预先设有的对应类型数据摘要后,以base64的数据格式对这些数据摘要进行存储后,应用预先设有的私钥信息对这些数据摘要进行单向签名,生成待验签的应用程序,并判断预先设有的签名公钥能否解密该待验签的应用程序,以执行对应的步骤;例如,***得知预先设定的签名公钥无法解密该待验签的应用程序,则此时***会判定无法确定消息确实是由发送方签名并发出来的,可能有人恶意假冒发送方的签名并发送应用程序至***中;例如,***得知预先设定的签名公钥能够解密该待验签的应用程序,则此时***会生成私钥信息与公钥信息的比对数据。
在本实施例中,所述判断模块还包括:
计算单元,用于基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
第二计算单元,用于根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
第二生成单元,用于根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
在本实施例中,***根据预设的散列运算方式处理待签名消息并得到对应的消息摘要,例如将待签名消息作为输入数据,根据SM3算法处理该数据并输出消息摘要,(SM3算法要求摘要的比特长度为256比特,SM3算法是单向的哈希运算,可以根据待签名消息处理为消息摘要,但却不能根据消息摘要反推出待签名消息);签名方对消息摘要进行切块以得到多个摘要子块,消息摘要的比特长度为256比特,按照32比特的分块长度对消息摘要进行切块,将256比特切割为长度为32比特的8个摘要子块,分别为block1、block2…block8,当然也可以切割为长度为16比特的16个摘要子块,具体可以根据应用需求确定摘要子块的长度和个数;获得多个摘要子块后,根据预设的映射方式确定各个摘要子块对应的密钥分量索引,根据消息摘要的摘要子块通过指定算法计算使用的签名密钥分量,以参与该摘要子块的签名计算,签名方再根据各个摘要子块对应的密钥分量索引来计算每个摘要子块对应的消息认证码,确定了密钥分量索引后,在提前预置的密钥分量序列中确定出摘要子块对应的密钥分量,一个摘要子块对应着一个消息认证码,8个block对应8个消息认证码,即H1、H2…H8;基于多个摘要子块对应的消息认证码确定待签名消息对应的数字签名,相当于对原来排序固定的密钥分量序列进行数据处理,并根据密钥分量索引将部分或者全部的密钥分量进行重新排序,有些密钥分量也会多次出现,最终获得数字签名。
在本实施例中,执行模块还包括:
处理单元,用于根据所述应用程序预设的待签名次数,确定所述待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
第三生成单元,用于生成所述公钥信息的签名集合;
获取单元,用于获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
在本实施例中,目标编码值为待处理数据中的数值,与预设的哈希公钥一一对应,签名次数通常从1开始,每执行一次签名进行递增,可以通过将已完成的签名操作的次数加1得到;根据签名次数,从预设的哈希公钥中确定待处理数据中各目标编码值相应的目标签名公钥,将待处理数据中的各目标编码值转化成预设进制的数值;其中,预设进制的数值与预设签名集合中签名次数相等;将签名次数作为目标签名簇;根据目标编码值的数值转化结果,确定相应的目标签名公钥;将待处理数据中的各目标编码值转化成预设进制的数值,使得针对该待签名消息的签名操作可以与相应预设的哈希公钥相匹配,从而基于该预设的哈希公钥完成对该待签名消息的签名操作,进而有助于提高该签名操作的效率;根据目标编码值的数值转化结果,能够在预先构建的哈希公钥中确定相应的目标签名公钥,从而无需对待应用程序的签名验签再进行复杂的计算,进而有助于提高对待应用程序进行签名的效率。
在本实施例中,执行模块还包括:
第二处理单元,用于针对每个所述特定哈希签名算法对应用程序进行处理,在所述应用程序中每个位置的哈希数据点中,确定权重较大的目标数据哈希点,基于所述每个位置对应的所述哈希数据点确定哈希编码对应的二值码,其中,所述权重用于表征所述哈希数据点对于计算所述哈希编码所对应的相似度系数;
构建单元,用于基于每个哈希编码对应的二值码,构建所对应的相似度矩阵,其中,所述相似度矩阵具备每个所述哈希编码与每个所述哈希编码所对应的所述二值码之间的差异;
更新单元,用于基于所述相似度矩阵动态更新所述签名值的变化参数。
在本实施例中,***针对应用程序通过特定哈希签名算法进行处理,生成应用程序中特征数据点对应的待成型矩阵,并表示为多个格子组成的矩形,矩形中每一格对应一个维度的数据,特征数据点x1的维度为m1,特征数据点y1的维度为m2,m1与m2可以是相等的,也可以是不等的,得到了特征数据点对一一对应的哈希编码对,哈希编码可以表示为多个格子组成的矩形,每一格对应于一个哈希数据点,也即一个维度的数据;哈希编码对中,每个哈希编码同一维度的哈希数据点,通过对哈希编码对中每个位置对应的哈希数据点的权重进行比较,得到权重较大的哈希数据点作为目标哈希数据点,哈希编码对中的哈希数据点对的数量是m3,因此可以得到m3个目标哈希数据点,对每个目标哈希数据点进行二值化处理,得到二值化数据点,并基于目标哈希数据点对应的哈希数据点对的位置,依次对二值化数据点进行组合,即由待成型矩阵组合得到相似度矩阵;从签名值1更新得到二值码1,二值码1的维度也为m3,也即,哈希编码对的二值码的编码长度与哈希编码对中每个哈希编码的编码长度相同,得到精确度更高的签名值变化参数,提高应用程序进行签名验签的效率。
在本实施例中,执行模块还包括:
编码单元,用于基于所述哈希签名算法对所述待处理数据进行编码,得到待验证的哈希编码顺序,基于所述哈希编码顺序构建哈希特征数据库;
划分单元,用于对所述哈希编码顺序进行预处理,将所述哈希编码顺序在所述哈希特征数据库中划分为多个互不相交的子哈希编码,得到每一个所述子哈希编码作为所述哈希特征数据库的索引;
排列单元,用于在所述哈希特征数据库中基于所述子哈希编码对所述哈希编码顺序进行排列,生成各个编码位的排列次序。
在本实施例中,***通过哈希签名算法对待处理数据进行编码,得到待验证的哈希编码顺序,基于哈希编码顺序创建哈希特征数据库,在哈希特征数据库的哈希层和阈值层中设置阈值函数,将连续的特征哈希向量转化为二值哈希编码,得到的二值哈希编码进行预处理,将预处理的哈希编码连续划分为多个互不相交的子哈希编码,使用原哈希编码数据进行变换,使变换后的数据具有线性不相关性且尽量保证原有数据之间的关系,对原哈希编码训练生成投影向量,然后将原哈希编码与生成的投影向量相乘得到分布均匀的哈希编码,并将哈希编码连续划分为多个互不相交的子哈希编码,得到的每一个子哈希编码能够作为哈希特征数据库的索引,输入待查询的签名值信息,对每一个哈希编码检索,并获取全部的相似编码位候选集,然后计算编码位候选集中所有签名值的汉明距离并进行排序,得到编码位候选集中各个编码位的排列次序。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (10)

1.一种消费机的签名验签方法,其特征在于,包括以下步骤:
获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的安装环境信息,将所述安装环境信息和所述安装要求信息进行比较,判断所述应用程序的安装环境是否满足预设安装要求;
若满足,则向所述应用程序提供读取内存预存储数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
根据应用程序对应的所述预设私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
2.根据权利要求1所述的一种消费机的签名验签方法,其特征在于,所述应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密的步骤中,包括:
对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
判断公钥信息是否能解密所述待验签的应用程序;
若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
3.根据权利要求1所述的一种消费机的签名验签方法,其特征在于,所述根据所述应用程序对应的预设私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签的步骤中,包括:
基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
4.根据权利要求1所述的一种消费机的签名验签方法,其特征在于,所述则将所述应用程序进行二进制位编码处理的步骤中,包括:
根据所述应用程序预设的待签名次数,确定待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
生成所述公钥信息的签名集合;
获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
5.根据权利要求1所述的一种消费机的签名验签方法,其特征在于,所述从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值的步骤中,包括:
针对每个所述对应的哈希签名算法对应用程序进行处理,在所述应用程序中每个位置的哈希数据点中,特征数据点对一一对应的哈希编码对,通过对哈希编码对中每个位置对应的哈希数据点的权重进行比较,确定权重较大的目标哈希数据点,基于所述每个位置对应的所述哈希数据点确定哈希编码对应的二值码,其中,所述权重用于表征所述哈希数据点对于计算所述哈希编码所对应的相似度系数;
基于每个哈希编码对应的二值码,构建所对应的相似度矩阵,其中,所述相似度矩阵具备每个所述哈希编码与每个所述哈希编码所对应的所述二值码之间的差异;
基于所述相似度矩阵动态更新所述签名值的变化参数。
6.根据权利要求1所述的一种消费机的签名验签方法,其特征在于,所述基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息的步骤中,包括:
基于所述哈希签名算法对待处理数据进行编码,得到待验证的哈希编码顺序,基于所述哈希编码顺序构建哈希特征数据库;
对所述哈希编码顺序进行预处理,将所述哈希编码顺序在所述哈希特征数据库中划分为多个互不相交的子哈希编码,得到每一个所述子哈希编码作为所述哈希特征数据库的索引;
在所述哈希特征数据库中基于所述子哈希编码对所述哈希编码顺序进行排列,生成各个编码位的排列次序。
7.一种消费机的签名验签***,其特征在于,包括:
获取模块,用于获取待安装的应用程序,识别所述应用程序的安装环境,接收所述应用程序的安装环境检测指令,通过预设服务端查询所述应用程序的安装要求信息,获取所述应用程序的安装环境信息,将所述安装环境信息和所述安装要求信息进行比较,判断所述应用程序的安装环境是否满足预设安装要求;
判断模块,用于若满足,则向所述应用程序提供读取内存预储数据的权限,应用预设私钥信息对所述应用程序进行配对,将所述应用程序中的附带文件进行解密,生成解密数据摘要,将所述解密数据摘要与预存储的数据文本进行差异性比对,判断所述解密数据摘要是否与所述数据文本相同;
执行模块,用于若是,则将所述应用程序进行二进制位编码处理,生成所述应用程序对应的二进制位编码,根据所述二进制位编码对应设有的编码位,从预设的哈希签名算法集中选取具有适配所述编码位的对应的哈希签名算法,应用所述对应的哈希签名算法对所述应用程序进行哈希运算,运算得出所述应用程序的二进制签名值,基于所述应用程序中存在的至少一个二进制位编码,并依据所述二进制位编码的编码位由少至多的递进序列,对所述应用程序进行编排组合,组合生成所述应用程序的公钥信息;
验证模块,用于根据所述应用程序对应的所述预设私钥信息,对所述应用程序的公钥信息进行验证,生成验签完毕的数字签名,将所述数字签名录入在所述应用程序中,完成验签。
8.根据权利要求7所述的一种消费机的签名验签***,其特征在于,所述判断模块还包括:
生成单元,用于对所述应用程序进行读取,通过所述哈希签名算法将所述应用程序中各个文件加密为预设类型的数据摘要后,以base64的数据格式对所述数据摘要进行存储,并应用预设私钥信息对所述数据摘要进行签名,生成待验签的应用程序;
第二判断单元,用于判断公钥信息是否能解密所述待验签的应用程序;
第二执行单元,用于若是,则生成所述应用程序中,基于所述预设私钥信息与公钥信息的比对数据。
9.根据权利要求7所述的一种消费机的签名验签***,其特征在于,所述判断模块还包括:
计算单元,用于基于预设的密钥分量序列针对所述应用程序进行计算,并基于所述应用程序以及所述应用程序的标识信息生成签名结果;
第二计算单元,用于根据预设的散列运算方式针对所述签名结果对应的消息摘要进行计算,对所述消息摘要进行切块以得到多个摘要子块,并根据预设的映射方式确定各个所述摘要子块对应的密钥分量索引;
第二生成单元,用于根据各个所述摘要子块对应的密钥分量索引计算每个所述摘要子块对应的信息认证码,并基于所述多个摘要子块对应的信息认证码生成所述签名结果对应的数字签名。
10.根据权利要求7所述的一种消费机的签名验签***,其特征在于,所述执行模块还包括:
处理单元,用于根据所述应用程序预设的待签名次数,确定待处理数据中各目标编码值相应的哈希公钥作为公钥信息;
第三生成单元,用于生成所述公钥信息的签名集合;
获取单元,用于获取所述公钥信息基于所述签名集合的位置,根据所述位置确定目标认证路径,用于验证所述签名集合。
CN202310045616.XA 2023-01-30 2023-01-30 一种消费机的签名验签方法及*** Active CN116248291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310045616.XA CN116248291B (zh) 2023-01-30 2023-01-30 一种消费机的签名验签方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310045616.XA CN116248291B (zh) 2023-01-30 2023-01-30 一种消费机的签名验签方法及***

Publications (2)

Publication Number Publication Date
CN116248291A CN116248291A (zh) 2023-06-09
CN116248291B true CN116248291B (zh) 2023-11-17

Family

ID=86634294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310045616.XA Active CN116248291B (zh) 2023-01-30 2023-01-30 一种消费机的签名验签方法及***

Country Status (1)

Country Link
CN (1) CN116248291B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095696A (zh) * 2015-06-25 2015-11-25 三星电子(中国)研发中心 对应用程序进行安全认证的方法、***及设备
KR20180105406A (ko) * 2017-03-15 2018-09-28 주식회사 아이리시스 생체인증을 통한 전자화폐에 의한 결제방법 및 생체인증 결제 관리 서버
US10742420B1 (en) * 2018-03-09 2020-08-11 Wells Fargo Bank, N.A. Quantum-resistant double signature system
EP3798873A1 (de) * 2019-09-24 2021-03-31 Siemens Aktiengesellschaft Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
CN113761587A (zh) * 2020-09-23 2021-12-07 北京沃东天骏信息技术有限公司 用于签名校验的方法和装置
CN114706772A (zh) * 2022-04-01 2022-07-05 合众新能源汽车有限公司 安装环境检测方法、装置、设备及存储介质
CN115242402A (zh) * 2022-07-12 2022-10-25 长春吉大正元信息技术股份有限公司 签名方法、验签方法及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095696A (zh) * 2015-06-25 2015-11-25 三星电子(中国)研发中心 对应用程序进行安全认证的方法、***及设备
KR20180105406A (ko) * 2017-03-15 2018-09-28 주식회사 아이리시스 생체인증을 통한 전자화폐에 의한 결제방법 및 생체인증 결제 관리 서버
US10742420B1 (en) * 2018-03-09 2020-08-11 Wells Fargo Bank, N.A. Quantum-resistant double signature system
EP3798873A1 (de) * 2019-09-24 2021-03-31 Siemens Aktiengesellschaft Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
CN113761587A (zh) * 2020-09-23 2021-12-07 北京沃东天骏信息技术有限公司 用于签名校验的方法和装置
CN114706772A (zh) * 2022-04-01 2022-07-05 合众新能源汽车有限公司 安装环境检测方法、装置、设备及存储介质
CN115242402A (zh) * 2022-07-12 2022-10-25 长春吉大正元信息技术股份有限公司 签名方法、验签方法及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
软件安全中的若干关键技术研究;刁俊峰;中国博士学位论文全文数据库(06);全文 *

Also Published As

Publication number Publication date
CN116248291A (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
EP3780543A1 (en) Blockchain cross-chain authentication method and system, and server and readable storage medium
US20150365229A1 (en) Method of xor homomorphic encryption and secure calculation of a hamming distance
US10270588B2 (en) Method and system for additive homomorphic encryption scheme with operation error detection functionality
CN108848064B (zh) 授权管理方法及***
CN101004805A (zh) 数字文档管理***、数字文档管理方法和管理程序
CN107948155A (zh) 密码校验方法、装置、计算机设备和计算机可读存储介质
CN102790678B (zh) 一种认证方法及***
US10503915B2 (en) Encrypted text verification system, method and recording medium
EP2933945A1 (en) Bit string matching system, method, and program
CN110597836B (zh) 基于区块链网络的信息查询请求响应方法及装置
KR20120053929A (ko) 전자서명키 이중 암호화를 이용한 전자서명 대행 시스템과 웹 저장소에 저장을 특징으로 하는 그 방법
US10484182B2 (en) Encrypted text verification system, method, and recording medium
CN115208628B (zh) 基于区块链的数据完整性验证方法
CN103400063A (zh) 脚本文件执行方法及装置
CN110798322B (zh) 一种操作请求方法、装置、存储介质及处理器
CN110188545B (zh) 一种基于链式数据库的数据加密方法及装置
CN109302286B (zh) 一种Fido设备密钥索引的生成方法
EP2286610B1 (en) Techniques for peforming symmetric cryptography
CN116248291B (zh) 一种消费机的签名验签方法及***
CN116451263B (zh) 硬盘数据的储存方法、装置、设备及存储介质
CN115002141B (zh) 基于区块链的文件存储方法及装置
CN108376212B (zh) 执行代码安全保护方法、装置及电子装置
CN115242534B (zh) 节点状态安全查询方法、***和装置
CN114285581A (zh) 应用管理方法及相关产品
CN115860932B (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
GR01 Patent grant
GR01 Patent grant